power_reviews 0.1.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,70 +1,79 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: power_reviews 0.3.1 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
- s.name = %q{power_reviews}
8
- s.version = "0.1.1"
8
+ s.name = "power_reviews"
9
+ s.version = "0.3.1"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Beau Collins"]
12
- s.date = %q{2009-09-29}
13
- s.description = %q{Tools and library for integrating Power Reviews into a rails website.}
14
- s.email = %q{beaucollins@gmail.com}
14
+ s.date = "2014-01-22"
15
+ s.description = "Tools and library for integrating Power Reviews into a rails website."
16
+ s.email = "beaucollins@gmail.com"
15
17
  s.extra_rdoc_files = [
16
18
  "README"
17
19
  ]
18
20
  s.files = [
19
- ".gitignore",
20
- "MIT-LICENSE",
21
- "README",
22
- "Rakefile",
23
- "VERSION",
24
- "generators/power_reviews/USAGE",
25
- "generators/power_reviews/power_reviews_generator.rb",
26
- "generators/power_reviews/templates/config/initializers/power_reviews.rb",
27
- "generators/power_reviews/templates/config/power_reviews.yml",
28
- "generators/power_reviews/templates/config/schedule.rb",
29
- "generators/power_reviews/templates/lib/tasks/power_reviews_tasks.rake",
30
- "lib/power_reviews.rb",
31
- "lib/power_reviews/config.rb",
32
- "lib/power_reviews/feed.rb",
33
- "lib/power_reviews/feed_item.rb",
34
- "lib/power_reviews/protocols/base.rb",
35
- "lib/power_reviews/protocols/cp.rb",
36
- "lib/power_reviews/protocols/ftp.rb",
37
- "lib/power_reviews/routes.rb",
38
- "lib/power_reviews/sync.rb",
39
- "lib/power_reviews/view_helpers.rb",
40
- "power_reviews.gemspec",
41
- "rails/init.rb",
42
- "test/power_reviews_test.rb",
43
- "test/test_helper.rb"
44
- ]
45
- s.homepage = %q{http://github.com/beaucollins/power_reviews}
46
- s.rdoc_options = ["--charset=UTF-8"]
47
- s.require_paths = ["lib"]
48
- s.rubygems_version = %q{1.3.5}
49
- s.summary = %q{Helps integrate Power Reviews into a rails site}
50
- s.test_files = [
21
+ "MIT-LICENSE",
22
+ "README",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "generators/power_reviews/USAGE",
26
+ "generators/power_reviews/power_reviews_generator.rb",
27
+ "generators/power_reviews/templates/config/initializers/power_reviews.rb",
28
+ "generators/power_reviews/templates/config/power_reviews.yml",
29
+ "generators/power_reviews/templates/config/schedule.rb",
30
+ "generators/power_reviews/templates/lib/tasks/power_reviews_tasks.rake",
31
+ "lib/power_reviews.rb",
32
+ "lib/power_reviews/config.rb",
33
+ "lib/power_reviews/feed.rb",
34
+ "lib/power_reviews/feed_item.rb",
35
+ "lib/power_reviews/protocols/base.rb",
36
+ "lib/power_reviews/protocols/cp.rb",
37
+ "lib/power_reviews/protocols/ftp.rb",
38
+ "lib/power_reviews/review_data.rb",
39
+ "lib/power_reviews/routes.rb",
40
+ "lib/power_reviews/sync.rb",
41
+ "lib/power_reviews/view_helpers.rb",
42
+ "power_reviews.gemspec",
43
+ "rails/init.rb",
44
+ "test/fixtures/rawdata/review_data_complete.xml",
45
+ "test/fixtures/rawdata/review_data_complete.xsd",
46
+ "test/fixtures/rawdata/review_data_summary.xml",
47
+ "test/fixtures/rawdata/review_data_summary.xsd",
48
+ "test/power_reviews/config_test.rb",
49
+ "test/power_reviews/review_data_test.rb",
50
+ "test/power_reviews/view_helpers_test.rb",
51
51
  "test/power_reviews_test.rb",
52
- "test/test_helper.rb"
52
+ "test/test_helper.rb"
53
53
  ]
54
+ s.homepage = "http://github.com/beaucollins/power_reviews"
55
+ s.rubygems_version = "2.2.1"
56
+ s.summary = "Helps integrate Power Reviews into a rails site"
54
57
 
55
58
  if s.respond_to? :specification_version then
56
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
57
- s.specification_version = 3
59
+ s.specification_version = 4
58
60
 
59
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
60
- s.add_runtime_dependency(%q<javan-whenever>, [">= 0"])
61
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
62
+ s.add_runtime_dependency(%q<whenever>, [">= 0"])
61
63
  s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
64
+ s.add_development_dependency(%q<activesupport>, [">= 0"])
65
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
62
66
  else
63
- s.add_dependency(%q<javan-whenever>, [">= 0"])
67
+ s.add_dependency(%q<whenever>, [">= 0"])
64
68
  s.add_dependency(%q<fastercsv>, [">= 0"])
69
+ s.add_dependency(%q<activesupport>, [">= 0"])
70
+ s.add_dependency(%q<shoulda>, [">= 0"])
65
71
  end
66
72
  else
67
- s.add_dependency(%q<javan-whenever>, [">= 0"])
73
+ s.add_dependency(%q<whenever>, [">= 0"])
68
74
  s.add_dependency(%q<fastercsv>, [">= 0"])
75
+ s.add_dependency(%q<activesupport>, [">= 0"])
76
+ s.add_dependency(%q<shoulda>, [">= 0"])
69
77
  end
70
78
  end
79
+
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3
+ <product xsi:type="ProductWithReviews" locale="en_US">
4
+ <pageid>shadow</pageid>
5
+ <name>Shadow</name>
6
+ <smallstarimagelocation>pwr/engine/images/stars_small.gif</smallstarimagelocation>
7
+ <largestarimagelocation>pwr/engine/images/stars.gif</largestarimagelocation>
8
+ <newestreviewdate>2010-01-28</newestreviewdate>
9
+ <oldestreviewdate>2010-01-28</oldestreviewdate>
10
+ <averageoverallrating>5</averageoverallrating>
11
+ <average_rating_decimal>5</average_rating_decimal>
12
+ <fullreviews>1</fullreviews>
13
+ <confirmstatusgroup>
14
+ <confirmstatus>Verified Purchaser</confirmstatus>
15
+ <confirmstatus>Verified Reviewer</confirmstatus>
16
+ </confirmstatusgroup>
17
+ <taggroup key="bestuses" name="Best Uses">
18
+ <tag isuseradded="false" count="1">Snowboarding</tag>
19
+ </taggroup>
20
+ <taggroup key="describeyourself" name="Describe Yourself">
21
+ <tag isuseradded="false" count="1">Beginner</tag>
22
+ </taggroup>
23
+ <taggroup key="pros" name="Pros">
24
+ <tag isuseradded="false" count="1">Comfortable</tag>
25
+ <tag isuseradded="false" count="1">Easily adjustable</tag>
26
+ <tag isuseradded="false" count="1">Great peripheral vision</tag>
27
+ <tag isuseradded="false" count="1">Lightweight</tag>
28
+ <tag isuseradded="false" count="1">Protective</tag>
29
+ <tag isuseradded="false" count="1">Stylish</tag>
30
+ <tag isuseradded="false" count="1">Well ventilated</tag>
31
+ </taggroup>
32
+ <taggroup key="sizing" name="Sizing">
33
+ <tag isuseradded="false" count="1">Feels true to size</tag>
34
+ </taggroup>
35
+ <bottom_line_yes_votes>1</bottom_line_yes_votes>
36
+ <bottom_line_no_votes>0</bottom_line_no_votes>
37
+ <customerimages>false</customerimages>
38
+ <customervideos>false</customervideos>
39
+ <reviews>
40
+ <fullreview>
41
+ <id>11111111</id>
42
+ <merchant_review_id>11111111</merchant_review_id>
43
+ <merchantuserid/>
44
+ <status>Approved</status>
45
+ <createddate>2010-01-28</createddate>
46
+ <helpfulvotes>1</helpfulvotes>
47
+ <nothelpfulvotes>0</nothelpfulvotes>
48
+ <source>web</source>
49
+ <confirmstatusgroup>
50
+ <confirmstatus>Unverified</confirmstatus>
51
+ </confirmstatusgroup>
52
+ <headline>Goggle straps are the best! Love it</headline>
53
+ <overallrating>5</overallrating>
54
+ <taggroup key="pros" name="Pros">
55
+ <tag isuseradded="false" count="1">Protective</tag>
56
+ <tag isuseradded="false" count="1">Easily Adjustable</tag>
57
+ <tag isuseradded="false" count="1">Great Peripheral Vision</tag>
58
+ <tag isuseradded="false" count="1">Stylish</tag>
59
+ <tag isuseradded="false" count="1">Well Ventilated</tag>
60
+ <tag isuseradded="false" count="1">Comfortable</tag>
61
+ <tag isuseradded="false" count="1">Lightweight</tag>
62
+ </taggroup>
63
+ <taggroup key="describeyourself" name="Describe Yourself">
64
+ <tag isuseradded="false" count="1">Beginner</tag>
65
+ </taggroup>
66
+ <taggroup key="sizing" name="Sizing">
67
+ <tag isuseradded="false" count="1">Feels true to size</tag>
68
+ </taggroup>
69
+ <taggroup key="bestuses" name="Best Uses">
70
+ <tag isuseradded="false" count="1">Snowboarding</tag>
71
+ </taggroup>
72
+ <bottom_line>recommended</bottom_line>
73
+ <comments>The Shadow is perfect! It fits great and best of all no more goggles flying back when I lift them up.</comments>
74
+ <nickname>nickname</nickname>
75
+ <location>location, st</location>
76
+ <site_id>1</site_id>
77
+ </fullreview>
78
+ </reviews>
79
+ </product>
80
+
81
+ </products>
@@ -0,0 +1,344 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="default">
3
+ <xsd:element name="products">
4
+ <xsd:complexType>
5
+ <xsd:sequence>
6
+ <xsd:element ref="product" minOccurs="0" maxOccurs="unbounded"/>
7
+ </xsd:sequence>
8
+ </xsd:complexType>
9
+ </xsd:element>
10
+
11
+ <xsd:element name="product" type="ProductType" />
12
+
13
+ <xsd:complexType name="ProductType" abstract="true">
14
+ <xsd:sequence>
15
+ <xsd:element name="pageid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
16
+ <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
17
+ </xsd:sequence>
18
+ <xsd:attribute name="locale" type="xsd:string" use="required"/>
19
+ </xsd:complexType>
20
+
21
+ <xsd:complexType name="ProductWithReviewsAndQuestions">
22
+ <xsd:complexContent>
23
+ <xsd:extension base="ProductType">
24
+ <xsd:sequence>
25
+ <xsd:element name="smallstarimagelocation" type="xsd:string" minOccurs="1" maxOccurs="1" />
26
+ <xsd:element name="largestarimagelocation" type="xsd:string" minOccurs="1" maxOccurs="1" />
27
+ <xsd:element name="newestreviewdate" type="xsd:date" minOccurs="1" maxOccurs="1"/>
28
+ <xsd:element name="oldestreviewdate" type="xsd:date" minOccurs="1" maxOccurs="1"/>
29
+ <xsd:element name="averageoverallrating" type="xsd:float" minOccurs="1" maxOccurs="1"/>
30
+ <xsd:element name="average_rating_decimal" type="xsd:float" minOccurs="1" maxOccurs="1"/>
31
+ <xsd:element name="fullreviews" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
32
+ <xsd:element name="confirmstatusgroup" type="ConfirmStatusGroupType" minOccurs="1" maxOccurs="1"/>
33
+ <xsd:element name="taggroup" type="TagGroupType" minOccurs="0" maxOccurs="unbounded"/>
34
+ <xsd:element name="bottom_line_yes_votes" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
35
+ <xsd:element name="bottom_line_no_votes" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
36
+ <xsd:element name="customerimages" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
37
+ <xsd:element name="customervideos" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
38
+ <xsd:element name="total_questions" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
39
+ <xsd:element name="total_answers" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
40
+ <xsd:element name="inlinefiles" type="InlineFilesType" minOccurs="0" maxOccurs="1"/>
41
+ <xsd:element name="inlinequestionfiles" type="InlineQuestionFilesType" minOccurs="0" maxOccurs="1"/>
42
+ <xsd:element name="deleted_reviews" type="DeletedReviewsType" minOccurs="0" maxOccurs="1"/>
43
+ <xsd:element name="reviews" type="ReviewListType" minOccurs="1" maxOccurs="1"/>
44
+ <xsd:element name="questions" type="QuestionsType" minOccurs="1" maxOccurs="1"/>
45
+ </xsd:sequence>
46
+ </xsd:extension>
47
+ </xsd:complexContent>
48
+ </xsd:complexType>
49
+
50
+ <xsd:complexType name="ProductWithReviews">
51
+ <xsd:complexContent>
52
+ <xsd:extension base="ProductType">
53
+ <xsd:sequence>
54
+ <xsd:element name="smallstarimagelocation" type="xsd:string" minOccurs="1" maxOccurs="1" />
55
+ <xsd:element name="largestarimagelocation" type="xsd:string" minOccurs="1" maxOccurs="1" />
56
+ <xsd:element name="newestreviewdate" type="xsd:date" minOccurs="1" maxOccurs="1"/>
57
+ <xsd:element name="oldestreviewdate" type="xsd:date" minOccurs="1" maxOccurs="1"/>
58
+ <xsd:element name="averageoverallrating" type="xsd:float" minOccurs="1" maxOccurs="1"/>
59
+ <xsd:element name="average_rating_decimal" type="xsd:float" minOccurs="1" maxOccurs="1"/>
60
+ <xsd:element name="fullreviews" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
61
+ <xsd:element name="confirmstatusgroup" type="ConfirmStatusGroupType" minOccurs="1" maxOccurs="1"/>
62
+ <xsd:element name="taggroup" type="TagGroupType" minOccurs="0" maxOccurs="unbounded"/>
63
+ <xsd:element name="bottom_line_yes_votes" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
64
+ <xsd:element name="bottom_line_no_votes" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
65
+ <xsd:element name="customerimages" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
66
+ <xsd:element name="customervideos" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
67
+ <xsd:element name="inlinefiles" type="InlineFilesType" minOccurs="0" maxOccurs="1"/>
68
+ <xsd:element name="deleted_reviews" type="DeletedReviewsType" minOccurs="0" maxOccurs="1"/>
69
+ <xsd:element name="reviews" type="ReviewListType" minOccurs="1" maxOccurs="1"/>
70
+ </xsd:sequence>
71
+ </xsd:extension>
72
+ </xsd:complexContent>
73
+ </xsd:complexType>
74
+
75
+ <xsd:complexType name="ProductWithQuestions">
76
+ <xsd:complexContent>
77
+ <xsd:extension base="ProductType">
78
+ <xsd:sequence>
79
+ <xsd:element name="total_questions" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
80
+ <xsd:element name="total_answers" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
81
+ <xsd:element name="inlinequestionfiles" type="InlineQuestionFilesType" minOccurs="0" maxOccurs="1"/>
82
+ <xsd:element name="deleted_reviews" type="DeletedReviewsType" minOccurs="0" maxOccurs="1"/>
83
+ <xsd:element name="questions" type="QuestionsType" minOccurs="1" maxOccurs="1"/>
84
+ </xsd:sequence>
85
+ </xsd:extension>
86
+ </xsd:complexContent>
87
+ </xsd:complexType>
88
+
89
+ <xsd:simpleType name="ReviewStatusType">
90
+ <xsd:restriction base="xsd:string">
91
+ <xsd:enumeration value="Approved"/>
92
+ <xsd:enumeration value="Rejected"/>
93
+ <xsd:enumeration value="Pending"/>
94
+ <xsd:enumeration value="Escalate"/>
95
+ </xsd:restriction>
96
+ </xsd:simpleType>
97
+
98
+ <xsd:complexType name="ConfirmStatusGroupType">
99
+ <xsd:sequence>
100
+ <xsd:element ref="confirmstatus" minOccurs="1" maxOccurs="unbounded"/>
101
+ </xsd:sequence>
102
+ </xsd:complexType>
103
+
104
+ <xsd:element name="confirmstatus" type="ConfirmStatusType" />
105
+
106
+ <xsd:simpleType name="ConfirmStatusType">
107
+ <xsd:restriction base="xsd:string">
108
+ <xsd:enumeration value="Verified Reviewer"/>
109
+ <xsd:enumeration value="Verified Purchaser"/>
110
+ <xsd:enumeration value="Unverified"/>
111
+ </xsd:restriction>
112
+ </xsd:simpleType>
113
+
114
+ <xsd:element name="tag" type="TagType" />
115
+
116
+ <xsd:complexType name="TagType">
117
+ <xsd:simpleContent>
118
+ <xsd:extension base="xsd:string">
119
+ <xsd:attribute name="isuseradded" type="xsd:boolean" use="required"/>
120
+ <xsd:attribute name="count" type="xsd:integer" use="required"/>
121
+ </xsd:extension>
122
+ </xsd:simpleContent>
123
+ </xsd:complexType>
124
+
125
+ <xsd:complexType name="TagListType">
126
+ <xsd:sequence>
127
+ <xsd:element ref="tag" minOccurs="1" maxOccurs="unbounded"/>
128
+ </xsd:sequence>
129
+ </xsd:complexType>
130
+
131
+ <xsd:complexType name="TagGroupType">
132
+ <xsd:sequence>
133
+ <xsd:element name="tag" type="TagType" minOccurs="1" maxOccurs="unbounded"/>
134
+ </xsd:sequence>
135
+ <xsd:attribute name="name" type="xsd:string" />
136
+ <xsd:attribute name="key" type="xsd:string" />
137
+ </xsd:complexType>
138
+
139
+ <xsd:complexType name="ReviewListType">
140
+ <xsd:sequence>
141
+ <xsd:element name="fullreview" type="FullReviewType" minOccurs="0" maxOccurs="unbounded"/>
142
+ </xsd:sequence>
143
+ </xsd:complexType>
144
+
145
+ <xsd:complexType name="FullReviewType">
146
+ <xsd:sequence>
147
+ <xsd:element name="id" type="xsd:long" minOccurs="1" maxOccurs="1"/>
148
+ <xsd:element name="merchant_review_id" type="xsd:long" minOccurs="1" maxOccurs="1"/>
149
+ <xsd:element name="merchantuserid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
150
+ <xsd:element name="status" type="ReviewStatusType" minOccurs="1" maxOccurs="1"/>
151
+ <xsd:element name="createddate" type="xsd:date" minOccurs="1" maxOccurs="1"/>
152
+ <xsd:element name="helpfulvotes" type="xsd:long" minOccurs="1" maxOccurs="1"/>
153
+ <xsd:element name="nothelpfulvotes" type="xsd:long" minOccurs="1" maxOccurs="1"/>
154
+ <xsd:element name="source" type="xsd:string" minOccurs="1" maxOccurs="1"/>
155
+ <xsd:element name="confirmstatusgroup" type="ConfirmStatusGroupType" minOccurs="1" maxOccurs="1"/>
156
+ <xsd:element name="headline" type="xsd:string" minOccurs="1" maxOccurs="1"/>
157
+ <xsd:element name="overallrating" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
158
+ <xsd:element name="taggroup" type="TagGroupType" minOccurs="0" maxOccurs="unbounded"/>
159
+ <xsd:element name="textboxgroup" type="TextboxGroupType" minOccurs="0" maxOccurs="1"/>
160
+ <xsd:element name="bottom_line" type="xsd:string" minOccurs="0" maxOccurs="1"/>
161
+ <xsd:element name="comments" type="xsd:string" minOccurs="1" maxOccurs="1"/>
162
+ <xsd:element name="nickname" type="xsd:string" minOccurs="1" maxOccurs="1"/>
163
+ <xsd:element name="location" type="xsd:string" minOccurs="1" maxOccurs="1"/>
164
+ <xsd:element name="customerimage" type="ReviewImageType" minOccurs="0" maxOccurs="2" />
165
+ <xsd:element name="customervideo" type="ReviewVideoType" minOccurs="0" maxOccurs="2" />
166
+ <xsd:element name="email_address_from_merchant" type="xsd:string" minOccurs="0" maxOccurs="1" />
167
+ <xsd:element name="email_address_from_user" type="xsd:string" minOccurs="0" maxOccurs="1" />
168
+ <xsd:element name="campaign_id" type="xsd:string" minOccurs="0" maxOccurs="1" />
169
+ <xsd:element name="service_comments" type="ServiceCommentsType" minOccurs="0" maxOccurs="1" />
170
+ <xsd:element name="merchant_response" type="MerchantResponseType" minOccurs="0" maxOccurs="1" />
171
+ <xsd:element name="associated_product_list" type="AssociatedProductListType" minOccurs="0" maxOccurs="1" />
172
+ <xsd:element name="page_id_variant" type="xsd:string" minOccurs="0" maxOccurs="1" />
173
+ <xsd:element name="extra_info_list" type="ExtraInfoListType" minOccurs="0" maxOccurs="1" />
174
+ <xsd:element name="questionGroups" type="QuestionGroupsType" minOccurs="0" maxOccurs="1" />
175
+ <xsd:element name="site_id" type="xsd:string" minOccurs="0" maxOccurs="1" />
176
+ <xsd:element name="modified_date" type="xsd:date" minOccurs="0" maxOccurs="1" />
177
+ </xsd:sequence>
178
+ </xsd:complexType>
179
+
180
+ <xsd:complexType name="ReviewImageType">
181
+ <xsd:sequence>
182
+ <xsd:element name="fullimagelocation" type="xsd:string" minOccurs="0" maxOccurs="1" />
183
+ <xsd:element name="thumbnailimagelocation" type="xsd:string" minOccurs="1" maxOccurs="1" />
184
+ <xsd:element name="caption" type="xsd:string" minOccurs="1" maxOccurs="1" />
185
+ <xsd:element name="taggroup" type="TagGroupType" minOccurs="0" maxOccurs="unbounded"/>
186
+ </xsd:sequence>
187
+ </xsd:complexType>
188
+
189
+ <xsd:complexType name="ReviewVideoType">
190
+ <xsd:sequence>
191
+ <xsd:element name="videolocation" type="xsd:string" minOccurs="0" maxOccurs="1" />
192
+ <xsd:element name="thumbnaillocation" type="xsd:string" minOccurs="1" maxOccurs="1" />
193
+ <xsd:element name="caption" type="xsd:string" minOccurs="1" maxOccurs="1" />
194
+ <xsd:element name="taggroup" type="TagGroupType" minOccurs="0" maxOccurs="unbounded"/>
195
+ </xsd:sequence>
196
+ </xsd:complexType>
197
+
198
+ <xsd:complexType name="ServiceCommentsType">
199
+ <xsd:sequence>
200
+ <xsd:element name="status" type="xsd:string" />
201
+ <xsd:element name="comments" type="xsd:string" />
202
+ </xsd:sequence>
203
+ </xsd:complexType>
204
+
205
+ <xsd:complexType name="MerchantResponseType">
206
+ <xsd:sequence>
207
+ <xsd:element name="response" type="xsd:string" />
208
+ </xsd:sequence>
209
+ </xsd:complexType>
210
+
211
+ <xsd:complexType name="AssociatedProductListType">
212
+ <xsd:sequence>
213
+ <xsd:element name="associated_product" type="AssociatedProductType" minOccurs="1" maxOccurs="unbounded"/>
214
+ </xsd:sequence>
215
+ </xsd:complexType>
216
+
217
+ <xsd:complexType name="AssociatedProductType">
218
+ <xsd:sequence>
219
+ <xsd:element name="type" type="xsd:string" />
220
+ <xsd:element name="product_name" type="xsd:string" />
221
+ <xsd:element name="product_url" type="xsd:string" />
222
+ </xsd:sequence>
223
+ </xsd:complexType>
224
+
225
+ <xsd:complexType name="ExtraInfoListType">
226
+ <xsd:sequence>
227
+ <xsd:element name="extra_info" type="ExtraInfoType" minOccurs="1" maxOccurs="unbounded"/>
228
+ </xsd:sequence>
229
+ </xsd:complexType>
230
+
231
+ <xsd:complexType name="ExtraInfoType">
232
+ <xsd:sequence>
233
+ <xsd:element name="key" type="xsd:string" />
234
+ <xsd:element name="value" type="xsd:string" />
235
+ </xsd:sequence>
236
+ </xsd:complexType>
237
+
238
+ <xsd:complexType name="TextboxGroupType">
239
+ <xsd:sequence>
240
+ <xsd:element name="textbox" type="TextboxType" minOccurs="1" maxOccurs="unbounded"/>
241
+ </xsd:sequence>
242
+ </xsd:complexType>
243
+
244
+ <xsd:complexType name="TextboxType">
245
+ <xsd:simpleContent>
246
+ <xsd:extension base="xsd:string" >
247
+ <xsd:attribute name="name" type="xsd:string" />
248
+ <xsd:attribute name="key" type="xsd:string" />
249
+ </xsd:extension>
250
+ </xsd:simpleContent>
251
+ </xsd:complexType>
252
+
253
+ <xsd:complexType name="InlineFilesType">
254
+ <xsd:sequence>
255
+ <xsd:element name="inlinefile" type="InlineFileType" minOccurs="1" maxOccurs="unbounded"/>
256
+ </xsd:sequence>
257
+ </xsd:complexType>
258
+
259
+ <xsd:complexType name="InlineFileType">
260
+ <xsd:simpleContent>
261
+ <xsd:extension base="xsd:string" >
262
+ <xsd:attribute name="reviewpage" type="xsd:integer" use="required"/>
263
+ </xsd:extension>
264
+ </xsd:simpleContent>
265
+ </xsd:complexType>
266
+
267
+ <xsd:complexType name="InlineQuestionFilesType">
268
+ <xsd:sequence>
269
+ <xsd:element name="inlinefile" type="InlineQuestionFileType" minOccurs="1" maxOccurs="unbounded"/>
270
+ </xsd:sequence>
271
+ </xsd:complexType>
272
+
273
+ <xsd:complexType name="InlineQuestionFileType">
274
+ <xsd:simpleContent>
275
+ <xsd:extension base="xsd:string" >
276
+ <xsd:attribute name="questionpage" type="xsd:integer" use="required"/>
277
+ </xsd:extension>
278
+ </xsd:simpleContent>
279
+ </xsd:complexType>
280
+
281
+ <xsd:complexType name="QuestionGroupsType">
282
+ <xsd:sequence>
283
+ <xsd:element name="questionGroup" type="QuestionGroupType" minOccurs="1" maxOccurs="unbounded"/>
284
+ </xsd:sequence>
285
+ </xsd:complexType>
286
+
287
+ <xsd:complexType name="QuestionGroupType">
288
+ <xsd:choice minOccurs="1" maxOccurs="unbounded" >
289
+ <xsd:element name="taggroup" type="TagGroupType"/>
290
+ <xsd:element name="textbox" type="TextboxType"/>
291
+ </xsd:choice>
292
+ <xsd:attribute name="name" type="xsd:string" />
293
+ </xsd:complexType>
294
+
295
+ <xsd:complexType name="DeletedReviewsType">
296
+ <xsd:sequence>
297
+ <xsd:element name="deleted_review" type="DeletedReviewType" minOccurs="1" maxOccurs="unbounded"/>
298
+ </xsd:sequence>
299
+ </xsd:complexType>
300
+
301
+ <xsd:complexType name="DeletedReviewType">
302
+ <xsd:sequence>
303
+ <xsd:element name="id" type="xsd:long" />
304
+ <xsd:element name="merchant_review_id" type="xsd:long" />
305
+ <xsd:element name="deleted_date" type="xsd:date" />
306
+ </xsd:sequence>
307
+ </xsd:complexType>
308
+
309
+ <xsd:complexType name="QuestionsType">
310
+ <xsd:sequence>
311
+ <xsd:element name="question" type="QuestionType" minOccurs="1" maxOccurs="unbounded"/>
312
+ </xsd:sequence>
313
+ </xsd:complexType>
314
+
315
+ <xsd:complexType name="QuestionType">
316
+ <xsd:sequence>
317
+ <xsd:element name="id" type="xsd:long" minOccurs="1" maxOccurs="1"/>
318
+ <xsd:element name="date" type="xsd:string" minOccurs="1" maxOccurs="1"/>
319
+ <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/>
320
+ <xsd:element name="nickname" type="xsd:string" minOccurs="0" maxOccurs="1"/>
321
+ <xsd:element name="location" type="xsd:string" minOccurs="0" maxOccurs="1"/>
322
+ <xsd:element name="text" type="xsd:string" minOccurs="1" maxOccurs="1"/>
323
+ <xsd:element name="answers" type="AnswersType" minOccurs="0" maxOccurs="1"/>
324
+ </xsd:sequence>
325
+ </xsd:complexType>
326
+
327
+ <xsd:complexType name="AnswersType">
328
+ <xsd:sequence>
329
+ <xsd:element name="answer" type="AnswerType" minOccurs="1" maxOccurs="unbounded"/>
330
+ </xsd:sequence>
331
+ </xsd:complexType>
332
+
333
+ <xsd:complexType name="AnswerType">
334
+ <xsd:sequence>
335
+ <xsd:element name="id" type="xsd:long" minOccurs="1" maxOccurs="1"/>
336
+ <xsd:element name="date" type="xsd:string" minOccurs="1" maxOccurs="1"/>
337
+ <xsd:element name="authored_by_expert" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
338
+ <xsd:element name="authored_by_verified_purchaser" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
339
+ <xsd:element name="nickname" type="xsd:string" minOccurs="1" maxOccurs="1"/>
340
+ <xsd:element name="location" type="xsd:string" minOccurs="1" maxOccurs="1"/>
341
+ <xsd:element name="text" type="xsd:string" minOccurs="1" maxOccurs="1"/>
342
+ </xsd:sequence>
343
+ </xsd:complexType>
344
+ </xsd:schema>