power_reviews 0.1.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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>