ruby_odata 0.1.0 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +7 -2
  4. data/.simplecov +10 -0
  5. data/.travis.yml +10 -4
  6. data/.yardopts +6 -0
  7. data/CHANGELOG.md +157 -0
  8. data/Guardfile +14 -0
  9. data/LICENSE +20 -22
  10. data/README.md +289 -0
  11. data/Rakefile +19 -9
  12. data/features/basic_auth.feature +3 -2
  13. data/features/batch_request.feature +7 -6
  14. data/features/cassettes/basic_auth_protected_resource.yml +57 -0
  15. data/features/cassettes/batch_request_additions.yml +69 -0
  16. data/features/cassettes/batch_request_deletes.yml +69 -0
  17. data/features/cassettes/batch_request_updates.yml +69 -0
  18. data/features/cassettes/clean_database_for_testing.yml +46 -0
  19. data/features/cassettes/cucumber_tags/basic_auth.yml +297 -0
  20. data/features/cassettes/cucumber_tags/batch_request.yml +1459 -0
  21. data/features/cassettes/cucumber_tags/complex_types.yml +326 -0
  22. data/features/cassettes/cucumber_tags/error_handling.yml +64 -0
  23. data/features/cassettes/cucumber_tags/query_builder.yml +2025 -0
  24. data/features/cassettes/cucumber_tags/service.yml +234 -0
  25. data/features/cassettes/cucumber_tags/service_manage.yml +937 -0
  26. data/features/cassettes/cucumber_tags/service_methods.yml +647 -0
  27. data/features/cassettes/cucumber_tags/ssl.yml +203 -0
  28. data/features/cassettes/cucumber_tags/type_conversion.yml +337 -0
  29. data/features/cassettes/service_manage_additions.yml +65 -0
  30. data/features/cassettes/service_manage_deletions.yml +58 -0
  31. data/features/cassettes/service_manage_deletions_2.yml +58 -0
  32. data/features/cassettes/unsecured_metadata.yml +89 -0
  33. data/features/complex_types.feature +4 -3
  34. data/features/error_handling.feature +13 -0
  35. data/features/query_builder.feature +30 -9
  36. data/features/service.feature +4 -3
  37. data/features/service_manage.feature +6 -5
  38. data/features/service_methods.feature +3 -2
  39. data/features/ssl.feature +8 -8
  40. data/features/step_definitions/service_steps.rb +32 -74
  41. data/features/support/env.rb +6 -3
  42. data/features/support/hooks.rb +3 -2
  43. data/features/support/pickle.rb +29 -18
  44. data/features/support/vcr.rb +24 -0
  45. data/features/type_conversion.feature +16 -17
  46. data/gemfiles/Gemfile.ruby187 +6 -0
  47. data/lib/ruby_odata.rb +20 -18
  48. data/lib/ruby_odata/association.rb +7 -6
  49. data/lib/ruby_odata/class_builder.rb +31 -14
  50. data/lib/ruby_odata/exceptions.rb +11 -0
  51. data/lib/ruby_odata/helpers.rb +17 -0
  52. data/lib/ruby_odata/operation.rb +5 -6
  53. data/lib/ruby_odata/property_metadata.rb +9 -7
  54. data/lib/ruby_odata/query_builder.rb +127 -63
  55. data/lib/ruby_odata/service.rb +265 -147
  56. data/lib/ruby_odata/version.rb +3 -1
  57. data/ruby_odata.gemspec +22 -13
  58. data/spec/fixtures/error_without_message.xml +5 -0
  59. data/spec/fixtures/int64_ids/edmx_boat_service.xml +19 -0
  60. data/spec/fixtures/int64_ids/edmx_car_service.xml +21 -0
  61. data/spec/fixtures/int64_ids/result_boats.xml +26 -0
  62. data/spec/fixtures/int64_ids/result_cars.xml +28 -0
  63. data/spec/fixtures/ms_system_center/edmx_ms_system_center.xml +1645 -0
  64. data/spec/fixtures/ms_system_center/edmx_ms_system_center_v2.xml +2120 -0
  65. data/spec/fixtures/ms_system_center/hardware_profiles.xml +61 -0
  66. data/spec/fixtures/ms_system_center/virtual_machines.xml +175 -0
  67. data/spec/fixtures/ms_system_center/vm_templates.xml +1193 -0
  68. data/spec/fixtures/nested_expands/edmx_northwind.xml +557 -0
  69. data/spec/fixtures/nested_expands/northwind_products_category_expands.xml +774 -0
  70. data/spec/fixtures/sample_service/result_select_categories_expand.xml +268 -0
  71. data/spec/fixtures/sample_service/result_select_categories_no_property.xml +6 -0
  72. data/spec/fixtures/sample_service/result_select_categories_travsing_no_expand.xml +6 -0
  73. data/spec/fixtures/sample_service/result_select_products_name_price.xml +92 -0
  74. data/spec/property_metadata_spec.rb +10 -10
  75. data/spec/query_builder_spec.rb +153 -14
  76. data/spec/revised_service_spec.rb +111 -6
  77. data/spec/service_spec.rb +389 -85
  78. data/spec/spec_helper.rb +3 -0
  79. data/spec/support/sample_service_matcher.rb +15 -0
  80. data/test/RubyODataService/RubyODataService/App_Data/.gitkeep +0 -0
  81. data/test/blueprints.rb +15 -9
  82. data/test/usage_samples/querying.rb +5 -1
  83. data/test/usage_samples/sample_data.rb +1 -3
  84. metadata +276 -76
  85. data/CHANGELOG.rdoc +0 -88
  86. data/README.rdoc +0 -259
@@ -0,0 +1,557 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">
3
+ <edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="1.0" m:MaxDataServiceVersion="3.0">
4
+ <Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="NorthwindModel">
5
+ <EntityType Name="Category">
6
+ <Key>
7
+ <PropertyRef Name="CategoryID"/>
8
+ </Key>
9
+ <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="CategoryID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity"/>
10
+ <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true"/>
11
+ <Property Name="Description" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true"/>
12
+ <Property Name="Picture" Type="Edm.Binary" MaxLength="Max" FixedLength="false"/>
13
+ <NavigationProperty Name="Products" Relationship="NorthwindModel.FK_Products_Categories" ToRole="Products" FromRole="Categories"/>
14
+ </EntityType>
15
+ <EntityType Name="CustomerDemographic">
16
+ <Key>
17
+ <PropertyRef Name="CustomerTypeID"/>
18
+ </Key>
19
+ <Property Name="CustomerTypeID" Type="Edm.String" Nullable="false" MaxLength="10" FixedLength="true" Unicode="true"/>
20
+ <Property Name="CustomerDesc" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true"/>
21
+ <NavigationProperty Name="Customers" Relationship="NorthwindModel.CustomerCustomerDemo" ToRole="Customers" FromRole="CustomerDemographics"/>
22
+ </EntityType>
23
+ <EntityType Name="Customer">
24
+ <Key>
25
+ <PropertyRef Name="CustomerID"/>
26
+ </Key>
27
+ <Property Name="CustomerID" Type="Edm.String" Nullable="false" MaxLength="5" FixedLength="true" Unicode="true"/>
28
+ <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
29
+ <Property Name="ContactName" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true"/>
30
+ <Property Name="ContactTitle" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true"/>
31
+ <Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
32
+ <Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
33
+ <Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
34
+ <Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
35
+ <Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
36
+ <Property Name="Phone" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true"/>
37
+ <Property Name="Fax" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true"/>
38
+ <NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Customers" ToRole="Orders" FromRole="Customers"/>
39
+ <NavigationProperty Name="CustomerDemographics" Relationship="NorthwindModel.CustomerCustomerDemo" ToRole="CustomerDemographics" FromRole="Customers"/>
40
+ </EntityType>
41
+ <EntityType Name="Employee">
42
+ <Key>
43
+ <PropertyRef Name="EmployeeID"/>
44
+ </Key>
45
+ <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="EmployeeID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity"/>
46
+ <Property Name="LastName" Type="Edm.String" Nullable="false" MaxLength="20" FixedLength="false" Unicode="true"/>
47
+ <Property Name="FirstName" Type="Edm.String" Nullable="false" MaxLength="10" FixedLength="false" Unicode="true"/>
48
+ <Property Name="Title" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true"/>
49
+ <Property Name="TitleOfCourtesy" Type="Edm.String" MaxLength="25" FixedLength="false" Unicode="true"/>
50
+ <Property Name="BirthDate" Type="Edm.DateTime"/>
51
+ <Property Name="HireDate" Type="Edm.DateTime"/>
52
+ <Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
53
+ <Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
54
+ <Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
55
+ <Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
56
+ <Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
57
+ <Property Name="HomePhone" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true"/>
58
+ <Property Name="Extension" Type="Edm.String" MaxLength="4" FixedLength="false" Unicode="true"/>
59
+ <Property Name="Photo" Type="Edm.Binary" MaxLength="Max" FixedLength="false"/>
60
+ <Property Name="Notes" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true"/>
61
+ <Property Name="ReportsTo" Type="Edm.Int32"/>
62
+ <Property Name="PhotoPath" Type="Edm.String" MaxLength="255" FixedLength="false" Unicode="true"/>
63
+ <NavigationProperty Name="Employees1" Relationship="NorthwindModel.FK_Employees_Employees" ToRole="Employees1" FromRole="Employees"/>
64
+ <NavigationProperty Name="Employee1" Relationship="NorthwindModel.FK_Employees_Employees" ToRole="Employees" FromRole="Employees1"/>
65
+ <NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Employees" ToRole="Orders" FromRole="Employees"/>
66
+ <NavigationProperty Name="Territories" Relationship="NorthwindModel.EmployeeTerritories" ToRole="Territories" FromRole="Employees"/>
67
+ </EntityType>
68
+ <EntityType Name="Order_Detail">
69
+ <Key>
70
+ <PropertyRef Name="OrderID"/>
71
+ <PropertyRef Name="ProductID"/>
72
+ </Key>
73
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
74
+ <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
75
+ <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4"/>
76
+ <Property Name="Quantity" Type="Edm.Int16" Nullable="false"/>
77
+ <Property Name="Discount" Type="Edm.Single" Nullable="false"/>
78
+ <NavigationProperty Name="Order" Relationship="NorthwindModel.FK_Order_Details_Orders" ToRole="Orders" FromRole="Order_Details"/>
79
+ <NavigationProperty Name="Product" Relationship="NorthwindModel.FK_Order_Details_Products" ToRole="Products" FromRole="Order_Details"/>
80
+ </EntityType>
81
+ <EntityType Name="Order">
82
+ <Key>
83
+ <PropertyRef Name="OrderID"/>
84
+ </Key>
85
+ <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="OrderID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity"/>
86
+ <Property Name="CustomerID" Type="Edm.String" MaxLength="5" FixedLength="true" Unicode="true"/>
87
+ <Property Name="EmployeeID" Type="Edm.Int32"/>
88
+ <Property Name="OrderDate" Type="Edm.DateTime"/>
89
+ <Property Name="RequiredDate" Type="Edm.DateTime"/>
90
+ <Property Name="ShippedDate" Type="Edm.DateTime"/>
91
+ <Property Name="ShipVia" Type="Edm.Int32"/>
92
+ <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4"/>
93
+ <Property Name="ShipName" Type="Edm.String" MaxLength="40" FixedLength="false" Unicode="true"/>
94
+ <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
95
+ <Property Name="ShipCity" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
96
+ <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
97
+ <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
98
+ <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
99
+ <NavigationProperty Name="Customer" Relationship="NorthwindModel.FK_Orders_Customers" ToRole="Customers" FromRole="Orders"/>
100
+ <NavigationProperty Name="Employee" Relationship="NorthwindModel.FK_Orders_Employees" ToRole="Employees" FromRole="Orders"/>
101
+ <NavigationProperty Name="Order_Details" Relationship="NorthwindModel.FK_Order_Details_Orders" ToRole="Order_Details" FromRole="Orders"/>
102
+ <NavigationProperty Name="Shipper" Relationship="NorthwindModel.FK_Orders_Shippers" ToRole="Shippers" FromRole="Orders"/>
103
+ </EntityType>
104
+ <EntityType Name="Product">
105
+ <Key>
106
+ <PropertyRef Name="ProductID"/>
107
+ </Key>
108
+ <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="ProductID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity"/>
109
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
110
+ <Property Name="SupplierID" Type="Edm.Int32"/>
111
+ <Property Name="CategoryID" Type="Edm.Int32"/>
112
+ <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" FixedLength="false" Unicode="true"/>
113
+ <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4"/>
114
+ <Property Name="UnitsInStock" Type="Edm.Int16"/>
115
+ <Property Name="UnitsOnOrder" Type="Edm.Int16"/>
116
+ <Property Name="ReorderLevel" Type="Edm.Int16"/>
117
+ <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false"/>
118
+ <NavigationProperty Name="Category" Relationship="NorthwindModel.FK_Products_Categories" ToRole="Categories" FromRole="Products"/>
119
+ <NavigationProperty Name="Order_Details" Relationship="NorthwindModel.FK_Order_Details_Products" ToRole="Order_Details" FromRole="Products"/>
120
+ <NavigationProperty Name="Supplier" Relationship="NorthwindModel.FK_Products_Suppliers" ToRole="Suppliers" FromRole="Products"/>
121
+ </EntityType>
122
+ <EntityType Name="Region">
123
+ <Key>
124
+ <PropertyRef Name="RegionID"/>
125
+ </Key>
126
+ <Property Name="RegionID" Type="Edm.Int32" Nullable="false"/>
127
+ <Property Name="RegionDescription" Type="Edm.String" Nullable="false" MaxLength="50" FixedLength="true" Unicode="true"/>
128
+ <NavigationProperty Name="Territories" Relationship="NorthwindModel.FK_Territories_Region" ToRole="Territories" FromRole="Region"/>
129
+ </EntityType>
130
+ <EntityType Name="Shipper">
131
+ <Key>
132
+ <PropertyRef Name="ShipperID"/>
133
+ </Key>
134
+ <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="ShipperID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity"/>
135
+ <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
136
+ <Property Name="Phone" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true"/>
137
+ <NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Shippers" ToRole="Orders" FromRole="Shippers"/>
138
+ </EntityType>
139
+ <EntityType Name="Supplier">
140
+ <Key>
141
+ <PropertyRef Name="SupplierID"/>
142
+ </Key>
143
+ <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="SupplierID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity"/>
144
+ <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
145
+ <Property Name="ContactName" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true"/>
146
+ <Property Name="ContactTitle" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true"/>
147
+ <Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
148
+ <Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
149
+ <Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
150
+ <Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
151
+ <Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
152
+ <Property Name="Phone" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true"/>
153
+ <Property Name="Fax" Type="Edm.String" MaxLength="24" FixedLength="false" Unicode="true"/>
154
+ <Property Name="HomePage" Type="Edm.String" MaxLength="Max" FixedLength="false" Unicode="true"/>
155
+ <NavigationProperty Name="Products" Relationship="NorthwindModel.FK_Products_Suppliers" ToRole="Products" FromRole="Suppliers"/>
156
+ </EntityType>
157
+ <EntityType Name="Territory">
158
+ <Key>
159
+ <PropertyRef Name="TerritoryID"/>
160
+ </Key>
161
+ <Property Name="TerritoryID" Type="Edm.String" Nullable="false" MaxLength="20" FixedLength="false" Unicode="true"/>
162
+ <Property Name="TerritoryDescription" Type="Edm.String" Nullable="false" MaxLength="50" FixedLength="true" Unicode="true"/>
163
+ <Property Name="RegionID" Type="Edm.Int32" Nullable="false"/>
164
+ <NavigationProperty Name="Region" Relationship="NorthwindModel.FK_Territories_Region" ToRole="Region" FromRole="Territories"/>
165
+ <NavigationProperty Name="Employees" Relationship="NorthwindModel.EmployeeTerritories" ToRole="Employees" FromRole="Territories"/>
166
+ </EntityType>
167
+ <EntityType Name="Alphabetical_list_of_product">
168
+ <Key>
169
+ <PropertyRef Name="CategoryName"/>
170
+ <PropertyRef Name="Discontinued"/>
171
+ <PropertyRef Name="ProductID"/>
172
+ <PropertyRef Name="ProductName"/>
173
+ </Key>
174
+ <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
175
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
176
+ <Property Name="SupplierID" Type="Edm.Int32"/>
177
+ <Property Name="CategoryID" Type="Edm.Int32"/>
178
+ <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" FixedLength="false" Unicode="true"/>
179
+ <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4"/>
180
+ <Property Name="UnitsInStock" Type="Edm.Int16"/>
181
+ <Property Name="UnitsOnOrder" Type="Edm.Int16"/>
182
+ <Property Name="ReorderLevel" Type="Edm.Int16"/>
183
+ <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false"/>
184
+ <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true"/>
185
+ </EntityType>
186
+ <EntityType Name="Category_Sales_for_1997">
187
+ <Key>
188
+ <PropertyRef Name="CategoryName"/>
189
+ </Key>
190
+ <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true"/>
191
+ <Property Name="CategorySales" Type="Edm.Decimal" Precision="19" Scale="4"/>
192
+ </EntityType>
193
+ <EntityType Name="Current_Product_List">
194
+ <Key>
195
+ <PropertyRef Name="ProductID"/>
196
+ <PropertyRef Name="ProductName"/>
197
+ </Key>
198
+ <Property xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="ProductID" Type="Edm.Int32" Nullable="false" p6:StoreGeneratedPattern="Identity"/>
199
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
200
+ </EntityType>
201
+ <EntityType Name="Customer_and_Suppliers_by_City">
202
+ <Key>
203
+ <PropertyRef Name="CompanyName"/>
204
+ <PropertyRef Name="Relationship"/>
205
+ </Key>
206
+ <Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
207
+ <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
208
+ <Property Name="ContactName" Type="Edm.String" MaxLength="30" FixedLength="false" Unicode="true"/>
209
+ <Property Name="Relationship" Type="Edm.String" Nullable="false" MaxLength="9" FixedLength="false" Unicode="false"/>
210
+ </EntityType>
211
+ <EntityType Name="Invoice">
212
+ <Key>
213
+ <PropertyRef Name="CustomerName"/>
214
+ <PropertyRef Name="Discount"/>
215
+ <PropertyRef Name="OrderID"/>
216
+ <PropertyRef Name="ProductID"/>
217
+ <PropertyRef Name="ProductName"/>
218
+ <PropertyRef Name="Quantity"/>
219
+ <PropertyRef Name="Salesperson"/>
220
+ <PropertyRef Name="ShipperName"/>
221
+ <PropertyRef Name="UnitPrice"/>
222
+ </Key>
223
+ <Property Name="ShipName" Type="Edm.String" MaxLength="40" FixedLength="false" Unicode="true"/>
224
+ <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
225
+ <Property Name="ShipCity" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
226
+ <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
227
+ <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
228
+ <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
229
+ <Property Name="CustomerID" Type="Edm.String" MaxLength="5" FixedLength="true" Unicode="true"/>
230
+ <Property Name="CustomerName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
231
+ <Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
232
+ <Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
233
+ <Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
234
+ <Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
235
+ <Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
236
+ <Property Name="Salesperson" Type="Edm.String" Nullable="false" MaxLength="31" FixedLength="false" Unicode="true"/>
237
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
238
+ <Property Name="OrderDate" Type="Edm.DateTime"/>
239
+ <Property Name="RequiredDate" Type="Edm.DateTime"/>
240
+ <Property Name="ShippedDate" Type="Edm.DateTime"/>
241
+ <Property Name="ShipperName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
242
+ <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
243
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
244
+ <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4"/>
245
+ <Property Name="Quantity" Type="Edm.Int16" Nullable="false"/>
246
+ <Property Name="Discount" Type="Edm.Single" Nullable="false"/>
247
+ <Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4"/>
248
+ <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4"/>
249
+ </EntityType>
250
+ <EntityType Name="Order_Details_Extended">
251
+ <Key>
252
+ <PropertyRef Name="Discount"/>
253
+ <PropertyRef Name="OrderID"/>
254
+ <PropertyRef Name="ProductID"/>
255
+ <PropertyRef Name="ProductName"/>
256
+ <PropertyRef Name="Quantity"/>
257
+ <PropertyRef Name="UnitPrice"/>
258
+ </Key>
259
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
260
+ <Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
261
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
262
+ <Property Name="UnitPrice" Type="Edm.Decimal" Nullable="false" Precision="19" Scale="4"/>
263
+ <Property Name="Quantity" Type="Edm.Int16" Nullable="false"/>
264
+ <Property Name="Discount" Type="Edm.Single" Nullable="false"/>
265
+ <Property Name="ExtendedPrice" Type="Edm.Decimal" Precision="19" Scale="4"/>
266
+ </EntityType>
267
+ <EntityType Name="Order_Subtotal">
268
+ <Key>
269
+ <PropertyRef Name="OrderID"/>
270
+ </Key>
271
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
272
+ <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4"/>
273
+ </EntityType>
274
+ <EntityType Name="Orders_Qry">
275
+ <Key>
276
+ <PropertyRef Name="CompanyName"/>
277
+ <PropertyRef Name="OrderID"/>
278
+ </Key>
279
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
280
+ <Property Name="CustomerID" Type="Edm.String" MaxLength="5" FixedLength="true" Unicode="true"/>
281
+ <Property Name="EmployeeID" Type="Edm.Int32"/>
282
+ <Property Name="OrderDate" Type="Edm.DateTime"/>
283
+ <Property Name="RequiredDate" Type="Edm.DateTime"/>
284
+ <Property Name="ShippedDate" Type="Edm.DateTime"/>
285
+ <Property Name="ShipVia" Type="Edm.Int32"/>
286
+ <Property Name="Freight" Type="Edm.Decimal" Precision="19" Scale="4"/>
287
+ <Property Name="ShipName" Type="Edm.String" MaxLength="40" FixedLength="false" Unicode="true"/>
288
+ <Property Name="ShipAddress" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
289
+ <Property Name="ShipCity" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
290
+ <Property Name="ShipRegion" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
291
+ <Property Name="ShipPostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
292
+ <Property Name="ShipCountry" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
293
+ <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
294
+ <Property Name="Address" Type="Edm.String" MaxLength="60" FixedLength="false" Unicode="true"/>
295
+ <Property Name="City" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
296
+ <Property Name="Region" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
297
+ <Property Name="PostalCode" Type="Edm.String" MaxLength="10" FixedLength="false" Unicode="true"/>
298
+ <Property Name="Country" Type="Edm.String" MaxLength="15" FixedLength="false" Unicode="true"/>
299
+ </EntityType>
300
+ <EntityType Name="Product_Sales_for_1997">
301
+ <Key>
302
+ <PropertyRef Name="CategoryName"/>
303
+ <PropertyRef Name="ProductName"/>
304
+ </Key>
305
+ <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true"/>
306
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
307
+ <Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4"/>
308
+ </EntityType>
309
+ <EntityType Name="Products_Above_Average_Price">
310
+ <Key>
311
+ <PropertyRef Name="ProductName"/>
312
+ </Key>
313
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
314
+ <Property Name="UnitPrice" Type="Edm.Decimal" Precision="19" Scale="4"/>
315
+ </EntityType>
316
+ <EntityType Name="Products_by_Category">
317
+ <Key>
318
+ <PropertyRef Name="CategoryName"/>
319
+ <PropertyRef Name="Discontinued"/>
320
+ <PropertyRef Name="ProductName"/>
321
+ </Key>
322
+ <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true"/>
323
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
324
+ <Property Name="QuantityPerUnit" Type="Edm.String" MaxLength="20" FixedLength="false" Unicode="true"/>
325
+ <Property Name="UnitsInStock" Type="Edm.Int16"/>
326
+ <Property Name="Discontinued" Type="Edm.Boolean" Nullable="false"/>
327
+ </EntityType>
328
+ <EntityType Name="Sales_by_Category">
329
+ <Key>
330
+ <PropertyRef Name="CategoryID"/>
331
+ <PropertyRef Name="CategoryName"/>
332
+ <PropertyRef Name="ProductName"/>
333
+ </Key>
334
+ <Property Name="CategoryID" Type="Edm.Int32" Nullable="false"/>
335
+ <Property Name="CategoryName" Type="Edm.String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="true"/>
336
+ <Property Name="ProductName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
337
+ <Property Name="ProductSales" Type="Edm.Decimal" Precision="19" Scale="4"/>
338
+ </EntityType>
339
+ <EntityType Name="Sales_Totals_by_Amount">
340
+ <Key>
341
+ <PropertyRef Name="CompanyName"/>
342
+ <PropertyRef Name="OrderID"/>
343
+ </Key>
344
+ <Property Name="SaleAmount" Type="Edm.Decimal" Precision="19" Scale="4"/>
345
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
346
+ <Property Name="CompanyName" Type="Edm.String" Nullable="false" MaxLength="40" FixedLength="false" Unicode="true"/>
347
+ <Property Name="ShippedDate" Type="Edm.DateTime"/>
348
+ </EntityType>
349
+ <EntityType Name="Summary_of_Sales_by_Quarter">
350
+ <Key>
351
+ <PropertyRef Name="OrderID"/>
352
+ </Key>
353
+ <Property Name="ShippedDate" Type="Edm.DateTime"/>
354
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
355
+ <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4"/>
356
+ </EntityType>
357
+ <EntityType Name="Summary_of_Sales_by_Year">
358
+ <Key>
359
+ <PropertyRef Name="OrderID"/>
360
+ </Key>
361
+ <Property Name="ShippedDate" Type="Edm.DateTime"/>
362
+ <Property Name="OrderID" Type="Edm.Int32" Nullable="false"/>
363
+ <Property Name="Subtotal" Type="Edm.Decimal" Precision="19" Scale="4"/>
364
+ </EntityType>
365
+ <Association Name="FK_Products_Categories">
366
+ <End Type="NorthwindModel.Category" Role="Categories" Multiplicity="0..1"/>
367
+ <End Type="NorthwindModel.Product" Role="Products" Multiplicity="*"/>
368
+ <ReferentialConstraint>
369
+ <Principal Role="Categories">
370
+ <PropertyRef Name="CategoryID"/>
371
+ </Principal>
372
+ <Dependent Role="Products">
373
+ <PropertyRef Name="CategoryID"/>
374
+ </Dependent>
375
+ </ReferentialConstraint>
376
+ </Association>
377
+ <Association Name="CustomerCustomerDemo">
378
+ <End Type="NorthwindModel.Customer" Role="Customers" Multiplicity="*"/>
379
+ <End Type="NorthwindModel.CustomerDemographic" Role="CustomerDemographics" Multiplicity="*"/>
380
+ </Association>
381
+ <Association Name="FK_Orders_Customers">
382
+ <End Type="NorthwindModel.Customer" Role="Customers" Multiplicity="0..1"/>
383
+ <End Type="NorthwindModel.Order" Role="Orders" Multiplicity="*"/>
384
+ <ReferentialConstraint>
385
+ <Principal Role="Customers">
386
+ <PropertyRef Name="CustomerID"/>
387
+ </Principal>
388
+ <Dependent Role="Orders">
389
+ <PropertyRef Name="CustomerID"/>
390
+ </Dependent>
391
+ </ReferentialConstraint>
392
+ </Association>
393
+ <Association Name="FK_Employees_Employees">
394
+ <End Type="NorthwindModel.Employee" Role="Employees" Multiplicity="0..1"/>
395
+ <End Type="NorthwindModel.Employee" Role="Employees1" Multiplicity="*"/>
396
+ <ReferentialConstraint>
397
+ <Principal Role="Employees">
398
+ <PropertyRef Name="EmployeeID"/>
399
+ </Principal>
400
+ <Dependent Role="Employees1">
401
+ <PropertyRef Name="ReportsTo"/>
402
+ </Dependent>
403
+ </ReferentialConstraint>
404
+ </Association>
405
+ <Association Name="FK_Orders_Employees">
406
+ <End Type="NorthwindModel.Employee" Role="Employees" Multiplicity="0..1"/>
407
+ <End Type="NorthwindModel.Order" Role="Orders" Multiplicity="*"/>
408
+ <ReferentialConstraint>
409
+ <Principal Role="Employees">
410
+ <PropertyRef Name="EmployeeID"/>
411
+ </Principal>
412
+ <Dependent Role="Orders">
413
+ <PropertyRef Name="EmployeeID"/>
414
+ </Dependent>
415
+ </ReferentialConstraint>
416
+ </Association>
417
+ <Association Name="EmployeeTerritories">
418
+ <End Type="NorthwindModel.Territory" Role="Territories" Multiplicity="*"/>
419
+ <End Type="NorthwindModel.Employee" Role="Employees" Multiplicity="*"/>
420
+ </Association>
421
+ <Association Name="FK_Order_Details_Orders">
422
+ <End Type="NorthwindModel.Order" Role="Orders" Multiplicity="1"/>
423
+ <End Type="NorthwindModel.Order_Detail" Role="Order_Details" Multiplicity="*"/>
424
+ <ReferentialConstraint>
425
+ <Principal Role="Orders">
426
+ <PropertyRef Name="OrderID"/>
427
+ </Principal>
428
+ <Dependent Role="Order_Details">
429
+ <PropertyRef Name="OrderID"/>
430
+ </Dependent>
431
+ </ReferentialConstraint>
432
+ </Association>
433
+ <Association Name="FK_Order_Details_Products">
434
+ <End Type="NorthwindModel.Product" Role="Products" Multiplicity="1"/>
435
+ <End Type="NorthwindModel.Order_Detail" Role="Order_Details" Multiplicity="*"/>
436
+ <ReferentialConstraint>
437
+ <Principal Role="Products">
438
+ <PropertyRef Name="ProductID"/>
439
+ </Principal>
440
+ <Dependent Role="Order_Details">
441
+ <PropertyRef Name="ProductID"/>
442
+ </Dependent>
443
+ </ReferentialConstraint>
444
+ </Association>
445
+ <Association Name="FK_Orders_Shippers">
446
+ <End Type="NorthwindModel.Shipper" Role="Shippers" Multiplicity="0..1"/>
447
+ <End Type="NorthwindModel.Order" Role="Orders" Multiplicity="*"/>
448
+ <ReferentialConstraint>
449
+ <Principal Role="Shippers">
450
+ <PropertyRef Name="ShipperID"/>
451
+ </Principal>
452
+ <Dependent Role="Orders">
453
+ <PropertyRef Name="ShipVia"/>
454
+ </Dependent>
455
+ </ReferentialConstraint>
456
+ </Association>
457
+ <Association Name="FK_Products_Suppliers">
458
+ <End Type="NorthwindModel.Supplier" Role="Suppliers" Multiplicity="0..1"/>
459
+ <End Type="NorthwindModel.Product" Role="Products" Multiplicity="*"/>
460
+ <ReferentialConstraint>
461
+ <Principal Role="Suppliers">
462
+ <PropertyRef Name="SupplierID"/>
463
+ </Principal>
464
+ <Dependent Role="Products">
465
+ <PropertyRef Name="SupplierID"/>
466
+ </Dependent>
467
+ </ReferentialConstraint>
468
+ </Association>
469
+ <Association Name="FK_Territories_Region">
470
+ <End Type="NorthwindModel.Region" Role="Region" Multiplicity="1"/>
471
+ <End Type="NorthwindModel.Territory" Role="Territories" Multiplicity="*"/>
472
+ <ReferentialConstraint>
473
+ <Principal Role="Region">
474
+ <PropertyRef Name="RegionID"/>
475
+ </Principal>
476
+ <Dependent Role="Territories">
477
+ <PropertyRef Name="RegionID"/>
478
+ </Dependent>
479
+ </ReferentialConstraint>
480
+ </Association>
481
+ </Schema>
482
+ <Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="ODataWebV3.Northwind.Model">
483
+ <EntityContainer xmlns:p6="http://schemas.microsoft.com/ado/2009/02/edm/annotation" Name="NorthwindEntities" m:IsDefaultEntityContainer="true" p6:LazyLoadingEnabled="true">
484
+ <EntitySet Name="Categories" EntityType="NorthwindModel.Category"/>
485
+ <EntitySet Name="CustomerDemographics" EntityType="NorthwindModel.CustomerDemographic"/>
486
+ <EntitySet Name="Customers" EntityType="NorthwindModel.Customer"/>
487
+ <EntitySet Name="Employees" EntityType="NorthwindModel.Employee"/>
488
+ <EntitySet Name="Order_Details" EntityType="NorthwindModel.Order_Detail"/>
489
+ <EntitySet Name="Orders" EntityType="NorthwindModel.Order"/>
490
+ <EntitySet Name="Products" EntityType="NorthwindModel.Product"/>
491
+ <EntitySet Name="Regions" EntityType="NorthwindModel.Region"/>
492
+ <EntitySet Name="Shippers" EntityType="NorthwindModel.Shipper"/>
493
+ <EntitySet Name="Suppliers" EntityType="NorthwindModel.Supplier"/>
494
+ <EntitySet Name="Territories" EntityType="NorthwindModel.Territory"/>
495
+ <EntitySet Name="Alphabetical_list_of_products" EntityType="NorthwindModel.Alphabetical_list_of_product"/>
496
+ <EntitySet Name="Category_Sales_for_1997" EntityType="NorthwindModel.Category_Sales_for_1997"/>
497
+ <EntitySet Name="Current_Product_Lists" EntityType="NorthwindModel.Current_Product_List"/>
498
+ <EntitySet Name="Customer_and_Suppliers_by_Cities" EntityType="NorthwindModel.Customer_and_Suppliers_by_City"/>
499
+ <EntitySet Name="Invoices" EntityType="NorthwindModel.Invoice"/>
500
+ <EntitySet Name="Order_Details_Extendeds" EntityType="NorthwindModel.Order_Details_Extended"/>
501
+ <EntitySet Name="Order_Subtotals" EntityType="NorthwindModel.Order_Subtotal"/>
502
+ <EntitySet Name="Orders_Qries" EntityType="NorthwindModel.Orders_Qry"/>
503
+ <EntitySet Name="Product_Sales_for_1997" EntityType="NorthwindModel.Product_Sales_for_1997"/>
504
+ <EntitySet Name="Products_Above_Average_Prices" EntityType="NorthwindModel.Products_Above_Average_Price"/>
505
+ <EntitySet Name="Products_by_Categories" EntityType="NorthwindModel.Products_by_Category"/>
506
+ <EntitySet Name="Sales_by_Categories" EntityType="NorthwindModel.Sales_by_Category"/>
507
+ <EntitySet Name="Sales_Totals_by_Amounts" EntityType="NorthwindModel.Sales_Totals_by_Amount"/>
508
+ <EntitySet Name="Summary_of_Sales_by_Quarters" EntityType="NorthwindModel.Summary_of_Sales_by_Quarter"/>
509
+ <EntitySet Name="Summary_of_Sales_by_Years" EntityType="NorthwindModel.Summary_of_Sales_by_Year"/>
510
+ <AssociationSet Name="FK_Products_Categories" Association="NorthwindModel.FK_Products_Categories">
511
+ <End Role="Categories" EntitySet="Categories"/>
512
+ <End Role="Products" EntitySet="Products"/>
513
+ </AssociationSet>
514
+ <AssociationSet Name="CustomerCustomerDemo" Association="NorthwindModel.CustomerCustomerDemo">
515
+ <End Role="CustomerDemographics" EntitySet="CustomerDemographics"/>
516
+ <End Role="Customers" EntitySet="Customers"/>
517
+ </AssociationSet>
518
+ <AssociationSet Name="FK_Orders_Customers" Association="NorthwindModel.FK_Orders_Customers">
519
+ <End Role="Customers" EntitySet="Customers"/>
520
+ <End Role="Orders" EntitySet="Orders"/>
521
+ </AssociationSet>
522
+ <AssociationSet Name="FK_Employees_Employees" Association="NorthwindModel.FK_Employees_Employees">
523
+ <End Role="Employees" EntitySet="Employees"/>
524
+ <End Role="Employees1" EntitySet="Employees"/>
525
+ </AssociationSet>
526
+ <AssociationSet Name="FK_Orders_Employees" Association="NorthwindModel.FK_Orders_Employees">
527
+ <End Role="Employees" EntitySet="Employees"/>
528
+ <End Role="Orders" EntitySet="Orders"/>
529
+ </AssociationSet>
530
+ <AssociationSet Name="EmployeeTerritories" Association="NorthwindModel.EmployeeTerritories">
531
+ <End Role="Employees" EntitySet="Employees"/>
532
+ <End Role="Territories" EntitySet="Territories"/>
533
+ </AssociationSet>
534
+ <AssociationSet Name="FK_Order_Details_Orders" Association="NorthwindModel.FK_Order_Details_Orders">
535
+ <End Role="Order_Details" EntitySet="Order_Details"/>
536
+ <End Role="Orders" EntitySet="Orders"/>
537
+ </AssociationSet>
538
+ <AssociationSet Name="FK_Order_Details_Products" Association="NorthwindModel.FK_Order_Details_Products">
539
+ <End Role="Order_Details" EntitySet="Order_Details"/>
540
+ <End Role="Products" EntitySet="Products"/>
541
+ </AssociationSet>
542
+ <AssociationSet Name="FK_Orders_Shippers" Association="NorthwindModel.FK_Orders_Shippers">
543
+ <End Role="Orders" EntitySet="Orders"/>
544
+ <End Role="Shippers" EntitySet="Shippers"/>
545
+ </AssociationSet>
546
+ <AssociationSet Name="FK_Products_Suppliers" Association="NorthwindModel.FK_Products_Suppliers">
547
+ <End Role="Products" EntitySet="Products"/>
548
+ <End Role="Suppliers" EntitySet="Suppliers"/>
549
+ </AssociationSet>
550
+ <AssociationSet Name="FK_Territories_Region" Association="NorthwindModel.FK_Territories_Region">
551
+ <End Role="Region" EntitySet="Regions"/>
552
+ <End Role="Territories" EntitySet="Territories"/>
553
+ </AssociationSet>
554
+ </EntityContainer>
555
+ </Schema>
556
+ </edmx:DataServices>
557
+ </edmx:Edmx>