odata4 0.7.0

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.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/.autotest +2 -0
  3. data/.gitignore +24 -0
  4. data/.rspec +2 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +75 -0
  8. data/CHANGELOG.md +120 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.txt +23 -0
  11. data/README.md +287 -0
  12. data/Rakefile +7 -0
  13. data/TODO.md +55 -0
  14. data/lib/odata4.rb +37 -0
  15. data/lib/odata4/complex_type.rb +76 -0
  16. data/lib/odata4/complex_type/property.rb +114 -0
  17. data/lib/odata4/entity.rb +319 -0
  18. data/lib/odata4/entity_set.rb +162 -0
  19. data/lib/odata4/enum_type.rb +95 -0
  20. data/lib/odata4/enum_type/property.rb +62 -0
  21. data/lib/odata4/navigation_property.rb +29 -0
  22. data/lib/odata4/navigation_property/proxy.rb +76 -0
  23. data/lib/odata4/properties.rb +25 -0
  24. data/lib/odata4/properties/binary.rb +50 -0
  25. data/lib/odata4/properties/boolean.rb +37 -0
  26. data/lib/odata4/properties/date.rb +27 -0
  27. data/lib/odata4/properties/date_time.rb +83 -0
  28. data/lib/odata4/properties/date_time_offset.rb +17 -0
  29. data/lib/odata4/properties/decimal.rb +50 -0
  30. data/lib/odata4/properties/float.rb +67 -0
  31. data/lib/odata4/properties/geography.rb +13 -0
  32. data/lib/odata4/properties/geography/base.rb +162 -0
  33. data/lib/odata4/properties/geography/line_string.rb +33 -0
  34. data/lib/odata4/properties/geography/point.rb +31 -0
  35. data/lib/odata4/properties/geography/polygon.rb +38 -0
  36. data/lib/odata4/properties/guid.rb +17 -0
  37. data/lib/odata4/properties/integer.rb +107 -0
  38. data/lib/odata4/properties/number.rb +14 -0
  39. data/lib/odata4/properties/string.rb +72 -0
  40. data/lib/odata4/properties/time.rb +40 -0
  41. data/lib/odata4/properties/time_of_day.rb +27 -0
  42. data/lib/odata4/property.rb +118 -0
  43. data/lib/odata4/property_registry.rb +41 -0
  44. data/lib/odata4/query.rb +231 -0
  45. data/lib/odata4/query/criteria.rb +92 -0
  46. data/lib/odata4/query/criteria/comparison_operators.rb +49 -0
  47. data/lib/odata4/query/criteria/date_functions.rb +61 -0
  48. data/lib/odata4/query/criteria/geography_functions.rb +21 -0
  49. data/lib/odata4/query/criteria/lambda_operators.rb +27 -0
  50. data/lib/odata4/query/criteria/string_functions.rb +40 -0
  51. data/lib/odata4/query/in_batches.rb +58 -0
  52. data/lib/odata4/query/result.rb +84 -0
  53. data/lib/odata4/query/result/atom.rb +41 -0
  54. data/lib/odata4/query/result/json.rb +42 -0
  55. data/lib/odata4/railtie.rb +19 -0
  56. data/lib/odata4/service.rb +344 -0
  57. data/lib/odata4/service_registry.rb +52 -0
  58. data/lib/odata4/version.rb +3 -0
  59. data/odata4.gemspec +34 -0
  60. data/spec/fixtures/files/entity_to_xml.xml +17 -0
  61. data/spec/fixtures/files/metadata.xml +150 -0
  62. data/spec/fixtures/files/product_0.json +10 -0
  63. data/spec/fixtures/files/product_0.xml +28 -0
  64. data/spec/fixtures/files/products.json +106 -0
  65. data/spec/fixtures/files/products.xml +308 -0
  66. data/spec/fixtures/files/supplier_0.json +26 -0
  67. data/spec/fixtures/files/supplier_0.xml +32 -0
  68. data/spec/fixtures/vcr_cassettes/complex_type_specs.yml +127 -0
  69. data/spec/fixtures/vcr_cassettes/entity_set_specs.yml +1348 -0
  70. data/spec/fixtures/vcr_cassettes/entity_set_specs/bad_entry.yml +183 -0
  71. data/spec/fixtures/vcr_cassettes/entity_set_specs/existing_entry.yml +256 -0
  72. data/spec/fixtures/vcr_cassettes/entity_set_specs/new_entry.yml +185 -0
  73. data/spec/fixtures/vcr_cassettes/entity_specs.yml +285 -0
  74. data/spec/fixtures/vcr_cassettes/navigation_property_proxy_specs.yml +346 -0
  75. data/spec/fixtures/vcr_cassettes/query/result_specs.yml +189 -0
  76. data/spec/fixtures/vcr_cassettes/query_specs.yml +663 -0
  77. data/spec/fixtures/vcr_cassettes/service_registry_specs.yml +129 -0
  78. data/spec/fixtures/vcr_cassettes/service_specs.yml +127 -0
  79. data/spec/fixtures/vcr_cassettes/usage_example_specs.yml +749 -0
  80. data/spec/odata4/complex_type_spec.rb +116 -0
  81. data/spec/odata4/entity/shared_examples.rb +82 -0
  82. data/spec/odata4/entity_set_spec.rb +168 -0
  83. data/spec/odata4/entity_spec.rb +151 -0
  84. data/spec/odata4/enum_type_spec.rb +134 -0
  85. data/spec/odata4/navigation_property/proxy_spec.rb +44 -0
  86. data/spec/odata4/navigation_property_spec.rb +55 -0
  87. data/spec/odata4/properties/binary_spec.rb +50 -0
  88. data/spec/odata4/properties/boolean_spec.rb +72 -0
  89. data/spec/odata4/properties/date_spec.rb +23 -0
  90. data/spec/odata4/properties/date_time_offset_spec.rb +30 -0
  91. data/spec/odata4/properties/date_time_spec.rb +23 -0
  92. data/spec/odata4/properties/decimal_spec.rb +24 -0
  93. data/spec/odata4/properties/float_spec.rb +45 -0
  94. data/spec/odata4/properties/geography/line_string_spec.rb +33 -0
  95. data/spec/odata4/properties/geography/point_spec.rb +29 -0
  96. data/spec/odata4/properties/geography/polygon_spec.rb +55 -0
  97. data/spec/odata4/properties/geography/shared_examples.rb +72 -0
  98. data/spec/odata4/properties/guid_spec.rb +17 -0
  99. data/spec/odata4/properties/integer_spec.rb +58 -0
  100. data/spec/odata4/properties/string_spec.rb +46 -0
  101. data/spec/odata4/properties/time_of_day_spec.rb +23 -0
  102. data/spec/odata4/properties/time_spec.rb +15 -0
  103. data/spec/odata4/property_registry_spec.rb +16 -0
  104. data/spec/odata4/property_spec.rb +32 -0
  105. data/spec/odata4/query/criteria_spec.rb +229 -0
  106. data/spec/odata4/query/result_spec.rb +53 -0
  107. data/spec/odata4/query_spec.rb +196 -0
  108. data/spec/odata4/service_registry_spec.rb +18 -0
  109. data/spec/odata4/service_spec.rb +80 -0
  110. data/spec/odata4/usage_example_spec.rb +176 -0
  111. data/spec/spec_helper.rb +32 -0
  112. data/spec/support/coverage.rb +2 -0
  113. data/spec/support/vcr.rb +9 -0
  114. metadata +380 -0
@@ -0,0 +1,52 @@
1
+ require 'singleton'
2
+
3
+ module OData4
4
+ # Provides a registry for keeping track of multiple OData4::Service instances
5
+ class ServiceRegistry
6
+ include Singleton
7
+
8
+ # Add a service to the Registry
9
+ #
10
+ # @param service [OData4::Service] service to add to the registry
11
+ def add(service)
12
+ initialize_instance_variables
13
+ @services << service if service.is_a?(OData4::Service) && !@services.include?(service)
14
+ @services_by_name[service.name] = @services.find_index(service)
15
+ @services_by_url[service.service_url] = @services.find_index(service)
16
+ end
17
+
18
+ # Lookup a service by URL or name
19
+ #
20
+ # @param lookup_key [String] the URL or name to lookup
21
+ # @return [OData4::Service, nil] the OData4::Service or nil
22
+ def [](lookup_key)
23
+ initialize_instance_variables
24
+ index = @services_by_name[lookup_key] || @services_by_url[lookup_key]
25
+ index.nil? ? nil : @services[index]
26
+ end
27
+
28
+ # (see #add)
29
+ def self.add(service)
30
+ OData4::ServiceRegistry.instance.add(service)
31
+ end
32
+
33
+ # (see #[])
34
+ def self.[](lookup_key)
35
+ OData4::ServiceRegistry.instance[lookup_key]
36
+ end
37
+
38
+ private
39
+
40
+ def initialize_instance_variables
41
+ @services ||= []
42
+ @services_by_name ||= {}
43
+ @services_by_url ||= {}
44
+ end
45
+
46
+ def flush
47
+ @services = []
48
+ @services_by_name = {}
49
+ @services_by_url = {}
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,3 @@
1
+ module OData4
2
+ VERSION = '0.7.0'
3
+ end
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'odata4/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'odata4'
8
+ spec.version = OData4::VERSION
9
+ spec.authors = ['Christoph Wagner', 'James Thompson']
10
+ spec.email = %w{christoph@wrstudios.com james@plainprograms.com}
11
+ spec.summary = %q{Simple OData library}
12
+ spec.description = %q{Provides a simple interface for working with OData V4 APIs.}
13
+ spec.homepage = 'https://github.com/wrstudios/odata4'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = %w{lib}
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.6'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'simplecov', '~> 0.15.1'
24
+ spec.add_development_dependency 'rspec', '~> 3.7.0'
25
+ spec.add_development_dependency 'rspec-autotest', '~> 1.0.0'
26
+ spec.add_development_dependency 'autotest', '~> 4.4.6'
27
+ spec.add_development_dependency 'vcr', '~> 4.0.0'
28
+ spec.add_development_dependency 'timecop', '~> 0.9.1'
29
+ spec.add_development_dependency 'equivalent-xml', '~> 0.6.0'
30
+
31
+ spec.add_dependency 'nokogiri', '~> 1.8.1'
32
+ spec.add_dependency 'typhoeus', '~> 1.3.0'
33
+ spec.add_dependency 'andand', '~> 1.3.3'
34
+ end
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0"?>
2
+ <entry xmlns="http://www.w3.org/2005/Atom" xmlns:data="http://docs.oasis-open.org/odata/ns/data" xmlns:metadata="http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" xml:base="http://services.odata.org/V4/OData/OData.svc">
3
+ <category term="ODataDemo.ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme"/>
4
+ <author>
5
+ <name/>
6
+ </author>
7
+ <content type="application/xml">
8
+ <metadata:properties>
9
+ <data:Name metadata:type="Edm.String">Bread</data:Name>
10
+ <data:Description metadata:type="Edm.String">Whole grain bread</data:Description>
11
+ <data:ReleaseDate metadata:type="Edm.DateTimeOffset">1992-01-01T00:00:00Z</data:ReleaseDate>
12
+ <data:DiscontinuedDate metadata:type="Edm.DateTimeOffset" metadata:null="true"/>
13
+ <data:Rating metadata:type="Edm.Int16">4</data:Rating>
14
+ <data:Price metadata:type="Edm.Double">2.5</data:Price>
15
+ </metadata:properties>
16
+ </content>
17
+ </entry>
@@ -0,0 +1,150 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
3
+ <edmx:DataServices>
4
+ <Schema Namespace="ODataDemo" xmlns="http://docs.oasis-open.org/odata/ns/edm">
5
+ <EntityType Name="Product">
6
+ <Key>
7
+ <PropertyRef Name="ID" />
8
+ </Key>
9
+ <Property Name="ID" Type="Edm.Int32" Nullable="false" />
10
+ <Property Name="Name" Type="Edm.String" />
11
+ <Property Name="Description" Type="Edm.String" />
12
+ <Property Name="ReleaseDate" Type="Edm.DateTimeOffset" Nullable="false" />
13
+ <Property Name="DiscontinuedDate" Type="Edm.DateTimeOffset" />
14
+ <Property Name="Rating" Type="Edm.Int16" Nullable="false" />
15
+ <Property Name="Price" Type="Edm.Double" Nullable="false" />
16
+ <Property Name="ProductStatus" Type="ODataDemo.ProductStatus" Nullable="false" />
17
+ <NavigationProperty Name="Categories" Type="Collection(ODataDemo.Category)" Partner="Products" />
18
+ <NavigationProperty Name="Supplier" Type="ODataDemo.Supplier" Partner="Products" />
19
+ <NavigationProperty Name="ProductDetail" Type="ODataDemo.ProductDetail" Partner="Product" />
20
+ </EntityType>
21
+ <EnumType Name="ProductStatus" UnderlyingType="Edm.Byte">
22
+ <Member Name="Available" />
23
+ <Member Name="LowStock" />
24
+ <Member Name="Backordered" />
25
+ <Member Name="Discontinued" />
26
+ </EnumType>
27
+ <EntityType Name="FeaturedProduct" BaseType="ODataDemo.Product">
28
+ <NavigationProperty Name="Advertisement" Type="ODataDemo.Advertisement" Partner="FeaturedProduct" />
29
+ </EntityType>
30
+ <EntityType Name="ProductDetail">
31
+ <Key>
32
+ <PropertyRef Name="ProductID" />
33
+ </Key>
34
+ <Property Name="ProductID" Type="Edm.Int32" Nullable="false" />
35
+ <Property Name="Details" Type="Edm.String" />
36
+ <NavigationProperty Name="Product" Type="ODataDemo.Product" Partner="ProductDetail" />
37
+ </EntityType>
38
+ <EntityType Name="Category" OpenType="true">
39
+ <Key>
40
+ <PropertyRef Name="ID" />
41
+ </Key>
42
+ <Property Name="ID" Type="Edm.Int32" Nullable="false" />
43
+ <Property Name="Name" Type="Edm.String" />
44
+ <NavigationProperty Name="Products" Type="Collection(ODataDemo.Product)" Partner="Categories" />
45
+ </EntityType>
46
+ <EntityType Name="Supplier">
47
+ <Key>
48
+ <PropertyRef Name="ID" />
49
+ </Key>
50
+ <Property Name="ID" Type="Edm.Int32" Nullable="false" />
51
+ <Property Name="Name" Type="Edm.String" />
52
+ <Property Name="Address" Type="ODataDemo.Address" />
53
+ <Property Name="Location" Type="Edm.GeographyPoint" SRID="Variable" />
54
+ <Property Name="Concurrency" Type="Edm.Int32" ConcurrencyMode="Fixed" Nullable="false" />
55
+ <NavigationProperty Name="Products" Type="Collection(ODataDemo.Product)" Partner="Supplier" />
56
+ </EntityType>
57
+ <ComplexType Name="Address">
58
+ <Property Name="Street" Type="Edm.String" />
59
+ <Property Name="City" Type="Edm.String" />
60
+ <Property Name="State" Type="Edm.String" />
61
+ <Property Name="ZipCode" Type="Edm.String" />
62
+ <Property Name="Country" Type="Edm.String" />
63
+ </ComplexType>
64
+ <EntityType Name="Person">
65
+ <Key>
66
+ <PropertyRef Name="ID" />
67
+ </Key>
68
+ <Property Name="ID" Type="Edm.Int32" Nullable="false" />
69
+ <Property Name="Name" Type="Edm.String" />
70
+ <NavigationProperty Name="PersonDetail" Type="ODataDemo.PersonDetail" Partner="Person" />
71
+ </EntityType>
72
+ <EntityType Name="Customer" BaseType="ODataDemo.Person">
73
+ <Property Name="TotalExpense" Type="Edm.Decimal" Nullable="false" />
74
+ </EntityType>
75
+ <EntityType Name="Employee" BaseType="ODataDemo.Person">
76
+ <Property Name="EmployeeID" Type="Edm.Int64" Nullable="false" />
77
+ <Property Name="HireDate" Type="Edm.DateTimeOffset" Nullable="false" />
78
+ <Property Name="Salary" Type="Edm.Single" Nullable="false" />
79
+ </EntityType>
80
+ <EntityType Name="PersonDetail">
81
+ <Key>
82
+ <PropertyRef Name="PersonID" />
83
+ </Key>
84
+ <Property Name="PersonID" Type="Edm.Int32" Nullable="false" />
85
+ <Property Name="Age" Type="Edm.Byte" Nullable="false" />
86
+ <Property Name="Gender" Type="Edm.Boolean" Nullable="false" />
87
+ <Property Name="Phone" Type="Edm.String" />
88
+ <Property Name="Address" Type="ODataDemo.Address" />
89
+ <Property Name="Photo" Type="Edm.Stream" Nullable="false" />
90
+ <NavigationProperty Name="Person" Type="ODataDemo.Person" Partner="PersonDetail" />
91
+ </EntityType>
92
+ <EntityType Name="Advertisement" HasStream="true">
93
+ <Key>
94
+ <PropertyRef Name="ID" />
95
+ </Key>
96
+ <Property Name="ID" Type="Edm.Guid" Nullable="false" />
97
+ <Property Name="Name" Type="Edm.String" />
98
+ <Property Name="AirDate" Type="Edm.DateTimeOffset" Nullable="false" />
99
+ <NavigationProperty Name="FeaturedProduct" Type="ODataDemo.FeaturedProduct" Partner="Advertisement" />
100
+ </EntityType>
101
+ <EntityContainer Name="DemoService">
102
+ <EntitySet Name="Products" EntityType="ODataDemo.Product">
103
+ <NavigationPropertyBinding Path="ODataDemo.FeaturedProduct/Advertisement" Target="Advertisements" />
104
+ <NavigationPropertyBinding Path="Categories" Target="Categories" />
105
+ <NavigationPropertyBinding Path="Supplier" Target="Suppliers" />
106
+ <NavigationPropertyBinding Path="ProductDetail" Target="ProductDetails" />
107
+ </EntitySet>
108
+ <EntitySet Name="ProductDetails" EntityType="ODataDemo.ProductDetail">
109
+ <NavigationPropertyBinding Path="Product" Target="Products" />
110
+ </EntitySet>
111
+ <EntitySet Name="Categories" EntityType="ODataDemo.Category">
112
+ <NavigationPropertyBinding Path="Products" Target="Products" />
113
+ </EntitySet>
114
+ <EntitySet Name="Suppliers" EntityType="ODataDemo.Supplier">
115
+ <NavigationPropertyBinding Path="Products" Target="Products" />
116
+ </EntitySet>
117
+ <EntitySet Name="Persons" EntityType="ODataDemo.Person">
118
+ <NavigationPropertyBinding Path="PersonDetail" Target="PersonDetails" />
119
+ </EntitySet>
120
+ <EntitySet Name="PersonDetails" EntityType="ODataDemo.PersonDetail">
121
+ <NavigationPropertyBinding Path="Person" Target="Persons" />
122
+ </EntitySet>
123
+ <EntitySet Name="Advertisements" EntityType="ODataDemo.Advertisement">
124
+ <NavigationPropertyBinding Path="FeaturedProduct" Target="Products" />
125
+ </EntitySet>
126
+ </EntityContainer>
127
+ <Annotations Target="ODataDemo.DemoService">
128
+ <Annotation Term="Org.OData.Display.V1.Description" String="This is a sample OData service with vocabularies" />
129
+ </Annotations>
130
+ <Annotations Target="ODataDemo.Product">
131
+ <Annotation Term="Org.OData.Display.V1.Description" String="All Products available in the online store" />
132
+ </Annotations>
133
+ <Annotations Target="ODataDemo.Product/Name">
134
+ <Annotation Term="Org.OData.Display.V1.DisplayName" String="Product Name" />
135
+ </Annotations>
136
+ <Annotations Target="ODataDemo.DemoService/Suppliers">
137
+ <Annotation Term="Org.OData.Publication.V1.PublisherName" String="Microsoft Corp." />
138
+ <Annotation Term="Org.OData.Publication.V1.PublisherId" String="MSFT" />
139
+ <Annotation Term="Org.OData.Publication.V1.Keywords" String="Inventory, Supplier, Advertisers, Sales, Finance" />
140
+ <Annotation Term="Org.OData.Publication.V1.AttributionUrl" String="http://www.odata.org/" />
141
+ <Annotation Term="Org.OData.Publication.V1.AttributionDescription" String="All rights reserved" />
142
+ <Annotation Term="Org.OData.Publication.V1.DocumentationUrl " String="http://www.odata.org/" />
143
+ <Annotation Term="Org.OData.Publication.V1.TermsOfUseUrl" String="All rights reserved" />
144
+ <Annotation Term="Org.OData.Publication.V1.PrivacyPolicyUrl" String="http://www.odata.org/" />
145
+ <Annotation Term="Org.OData.Publication.V1.LastModified" String="4/2/2013" />
146
+ <Annotation Term="Org.OData.Publication.V1.ImageUrl " String="http://www.odata.org/" />
147
+ </Annotations>
148
+ </Schema>
149
+ </edmx:DataServices>
150
+ </edmx:Edmx>
@@ -0,0 +1,10 @@
1
+ {
2
+ "@odata.context": "http://services.odata.org/V4/OData/OData.svc/$metadata#Products/$entity",
3
+ "ID": 0,
4
+ "Name": "Bread",
5
+ "Description": "Whole grain bread",
6
+ "ReleaseDate": "1992-01-01T00:00:00Z",
7
+ "DiscontinuedDate": null,
8
+ "Rating": 4,
9
+ "Price": 2.5
10
+ }
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <entry xml:base="http://services.odata.org/V4/OData/OData.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:context="http://services.odata.org/V4/OData/OData.svc/$metadata#Products/$entity">
3
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(0)</id>
4
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
5
+ <link rel="edit" title="Product" href="Products(0)" />
6
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(0)/Categories/$ref" />
7
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(0)/Categories" />
8
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(0)/Supplier/$ref" />
9
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(0)/Supplier" />
10
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(0)/ProductDetail/$ref" />
11
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(0)/ProductDetail" />
12
+ <title />
13
+ <updated>2017-11-28T19:16:33Z</updated>
14
+ <author>
15
+ <name />
16
+ </author>
17
+ <content type="application/xml">
18
+ <m:properties>
19
+ <d:ID m:type="Int32">0</d:ID>
20
+ <d:Name>Bread</d:Name>
21
+ <d:Description>Whole grain bread</d:Description>
22
+ <d:ReleaseDate m:type="DateTimeOffset">1992-01-01T00:00:00Z</d:ReleaseDate>
23
+ <d:DiscontinuedDate m:null="true" />
24
+ <d:Rating m:type="Int16">4</d:Rating>
25
+ <d:Price m:type="Double">2.5</d:Price>
26
+ </m:properties>
27
+ </content>
28
+ </entry>
@@ -0,0 +1,106 @@
1
+ {
2
+ "@odata.context": "http://services.odata.org/V4/OData/OData.svc/$metadata#Products",
3
+ "value": [
4
+ {
5
+ "ID": 0,
6
+ "Name": "Bread",
7
+ "Description": "Whole grain bread",
8
+ "ReleaseDate": "1992-01-01T00:00:00Z",
9
+ "DiscontinuedDate": null,
10
+ "Rating": 4,
11
+ "Price": 2.5
12
+ },
13
+ {
14
+ "ID": 1,
15
+ "Name": "Milk",
16
+ "Description": "Low fat milk",
17
+ "ReleaseDate": "1995-10-01T00:00:00Z",
18
+ "DiscontinuedDate": null,
19
+ "Rating": 3,
20
+ "Price": 3.5
21
+ },
22
+ {
23
+ "ID": 2,
24
+ "Name": "Vint soda",
25
+ "Description": "Americana Variety - Mix of 6 flavors",
26
+ "ReleaseDate": "2000-10-01T00:00:00Z",
27
+ "DiscontinuedDate": null,
28
+ "Rating": 3,
29
+ "Price": 20.9
30
+ },
31
+ {
32
+ "ID": 3,
33
+ "Name": "Havina Cola",
34
+ "Description": "The Original Key Lime Cola",
35
+ "ReleaseDate": "2005-10-01T00:00:00Z",
36
+ "DiscontinuedDate": "2006-10-01T00:00:00Z",
37
+ "Rating": 3,
38
+ "Price": 19.9
39
+ },
40
+ {
41
+ "ID": 4,
42
+ "Name": "Fruit Punch",
43
+ "Description": "Mango flavor, 8.3 Ounce Cans (Pack of 24)",
44
+ "ReleaseDate": "2003-01-05T00:00:00Z",
45
+ "DiscontinuedDate": null,
46
+ "Rating": 3,
47
+ "Price": 22.99
48
+ },
49
+ {
50
+ "ID": 5,
51
+ "Name": "Cranberry Juice",
52
+ "Description": "16-Ounce Plastic Bottles (Pack of 12)",
53
+ "ReleaseDate": "2006-08-04T00:00:00Z",
54
+ "DiscontinuedDate": null,
55
+ "Rating": 3,
56
+ "Price": 22.8
57
+ },
58
+ {
59
+ "ID": 6,
60
+ "Name": "Pink Lemonade",
61
+ "Description": "36 Ounce Cans (Pack of 3)",
62
+ "ReleaseDate": "2006-11-05T00:00:00Z",
63
+ "DiscontinuedDate": null,
64
+ "Rating": 3,
65
+ "Price": 18.8
66
+ },
67
+ {
68
+ "ID": 7,
69
+ "Name": "DVD Player",
70
+ "Description": "1080P Upconversion DVD Player",
71
+ "ReleaseDate": "2006-11-15T00:00:00Z",
72
+ "DiscontinuedDate": null,
73
+ "Rating": 5,
74
+ "Price": 35.88
75
+ },
76
+ {
77
+ "ID": 8,
78
+ "Name": "LCD HDTV",
79
+ "Description": "42 inch 1080p LCD with Built-in Blu-ray Disc Player",
80
+ "ReleaseDate": "2008-05-08T00:00:00Z",
81
+ "DiscontinuedDate": null,
82
+ "Rating": 3,
83
+ "Price": 1088.8
84
+ },
85
+ {
86
+ "@odata.type": "#ODataDemo.FeaturedProduct",
87
+ "ID": 9,
88
+ "Name": "Lemonade",
89
+ "Description": "Classic, refreshing lemonade (Single bottle)",
90
+ "ReleaseDate": "1970-01-01T00:00:00Z",
91
+ "DiscontinuedDate": null,
92
+ "Rating": 7,
93
+ "Price": 1.01
94
+ },
95
+ {
96
+ "@odata.type": "#ODataDemo.FeaturedProduct",
97
+ "ID": 10,
98
+ "Name": "Coffee",
99
+ "Description": "Bulk size can of instant coffee",
100
+ "ReleaseDate": "1982-12-31T00:00:00Z",
101
+ "DiscontinuedDate": null,
102
+ "Rating": 1,
103
+ "Price": 6.99
104
+ }
105
+ ]
106
+ }
@@ -0,0 +1,308 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <feed xml:base="http://services.odata.org/V4/OData/OData.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:context="http://services.odata.org/V4/OData/OData.svc/$metadata#Products">
3
+ <id>http://services.odata.org/V4/OData/OData.svc/Products</id>
4
+ <title type="text">Products</title>
5
+ <updated>2017-12-07T23:31:33Z</updated>
6
+ <link rel="self" title="Products" href="Products" />
7
+ <entry>
8
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(0)</id>
9
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
10
+ <link rel="edit" title="Product" href="Products(0)" />
11
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(0)/Categories/$ref" />
12
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(0)/Categories" />
13
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(0)/Supplier/$ref" />
14
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(0)/Supplier" />
15
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(0)/ProductDetail/$ref" />
16
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(0)/ProductDetail" />
17
+ <title />
18
+ <updated>2017-12-07T23:31:33Z</updated>
19
+ <author>
20
+ <name />
21
+ </author>
22
+ <content type="application/xml">
23
+ <m:properties>
24
+ <d:ID m:type="Int32">0</d:ID>
25
+ <d:Name>Bread</d:Name>
26
+ <d:Description>Whole grain bread</d:Description>
27
+ <d:ReleaseDate m:type="DateTimeOffset">1992-01-01T00:00:00Z</d:ReleaseDate>
28
+ <d:DiscontinuedDate m:null="true" />
29
+ <d:Rating m:type="Int16">4</d:Rating>
30
+ <d:Price m:type="Double">2.5</d:Price>
31
+ </m:properties>
32
+ </content>
33
+ </entry>
34
+ <entry>
35
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(1)</id>
36
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
37
+ <link rel="edit" title="Product" href="Products(1)" />
38
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(1)/Categories/$ref" />
39
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(1)/Categories" />
40
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(1)/Supplier/$ref" />
41
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(1)/Supplier" />
42
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(1)/ProductDetail/$ref" />
43
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(1)/ProductDetail" />
44
+ <title />
45
+ <updated>2017-12-07T23:31:33Z</updated>
46
+ <author>
47
+ <name />
48
+ </author>
49
+ <content type="application/xml">
50
+ <m:properties>
51
+ <d:ID m:type="Int32">1</d:ID>
52
+ <d:Name>Milk</d:Name>
53
+ <d:Description>Low fat milk</d:Description>
54
+ <d:ReleaseDate m:type="DateTimeOffset">1995-10-01T00:00:00Z</d:ReleaseDate>
55
+ <d:DiscontinuedDate m:null="true" />
56
+ <d:Rating m:type="Int16">3</d:Rating>
57
+ <d:Price m:type="Double">3.5</d:Price>
58
+ </m:properties>
59
+ </content>
60
+ </entry>
61
+ <entry>
62
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(2)</id>
63
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
64
+ <link rel="edit" title="Product" href="Products(2)" />
65
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(2)/Categories/$ref" />
66
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(2)/Categories" />
67
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(2)/Supplier/$ref" />
68
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(2)/Supplier" />
69
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(2)/ProductDetail/$ref" />
70
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(2)/ProductDetail" />
71
+ <title />
72
+ <updated>2017-12-07T23:31:33Z</updated>
73
+ <author>
74
+ <name />
75
+ </author>
76
+ <content type="application/xml">
77
+ <m:properties>
78
+ <d:ID m:type="Int32">2</d:ID>
79
+ <d:Name>Vint soda</d:Name>
80
+ <d:Description>Americana Variety - Mix of 6 flavors</d:Description>
81
+ <d:ReleaseDate m:type="DateTimeOffset">2000-10-01T00:00:00Z</d:ReleaseDate>
82
+ <d:DiscontinuedDate m:null="true" />
83
+ <d:Rating m:type="Int16">3</d:Rating>
84
+ <d:Price m:type="Double">20.9</d:Price>
85
+ </m:properties>
86
+ </content>
87
+ </entry>
88
+ <entry>
89
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(3)</id>
90
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
91
+ <link rel="edit" title="Product" href="Products(3)" />
92
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(3)/Categories/$ref" />
93
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(3)/Categories" />
94
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(3)/Supplier/$ref" />
95
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(3)/Supplier" />
96
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(3)/ProductDetail/$ref" />
97
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(3)/ProductDetail" />
98
+ <title />
99
+ <updated>2017-12-07T23:31:33Z</updated>
100
+ <author>
101
+ <name />
102
+ </author>
103
+ <content type="application/xml">
104
+ <m:properties>
105
+ <d:ID m:type="Int32">3</d:ID>
106
+ <d:Name>Havina Cola</d:Name>
107
+ <d:Description>The Original Key Lime Cola</d:Description>
108
+ <d:ReleaseDate m:type="DateTimeOffset">2005-10-01T00:00:00Z</d:ReleaseDate>
109
+ <d:DiscontinuedDate m:type="DateTimeOffset">2006-10-01T00:00:00Z</d:DiscontinuedDate>
110
+ <d:Rating m:type="Int16">3</d:Rating>
111
+ <d:Price m:type="Double">19.9</d:Price>
112
+ </m:properties>
113
+ </content>
114
+ </entry>
115
+ <entry>
116
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(4)</id>
117
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
118
+ <link rel="edit" title="Product" href="Products(4)" />
119
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(4)/Categories/$ref" />
120
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(4)/Categories" />
121
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(4)/Supplier/$ref" />
122
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(4)/Supplier" />
123
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(4)/ProductDetail/$ref" />
124
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(4)/ProductDetail" />
125
+ <title />
126
+ <updated>2017-12-07T23:31:33Z</updated>
127
+ <author>
128
+ <name />
129
+ </author>
130
+ <content type="application/xml">
131
+ <m:properties>
132
+ <d:ID m:type="Int32">4</d:ID>
133
+ <d:Name>Fruit Punch</d:Name>
134
+ <d:Description>Mango flavor, 8.3 Ounce Cans (Pack of 24)</d:Description>
135
+ <d:ReleaseDate m:type="DateTimeOffset">2003-01-05T00:00:00Z</d:ReleaseDate>
136
+ <d:DiscontinuedDate m:null="true" />
137
+ <d:Rating m:type="Int16">3</d:Rating>
138
+ <d:Price m:type="Double">22.99</d:Price>
139
+ </m:properties>
140
+ </content>
141
+ </entry>
142
+ <entry>
143
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(5)</id>
144
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
145
+ <link rel="edit" title="Product" href="Products(5)" />
146
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(5)/Categories/$ref" />
147
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(5)/Categories" />
148
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(5)/Supplier/$ref" />
149
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(5)/Supplier" />
150
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(5)/ProductDetail/$ref" />
151
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(5)/ProductDetail" />
152
+ <title />
153
+ <updated>2017-12-07T23:31:33Z</updated>
154
+ <author>
155
+ <name />
156
+ </author>
157
+ <content type="application/xml">
158
+ <m:properties>
159
+ <d:ID m:type="Int32">5</d:ID>
160
+ <d:Name>Cranberry Juice</d:Name>
161
+ <d:Description>16-Ounce Plastic Bottles (Pack of 12)</d:Description>
162
+ <d:ReleaseDate m:type="DateTimeOffset">2006-08-04T00:00:00Z</d:ReleaseDate>
163
+ <d:DiscontinuedDate m:null="true" />
164
+ <d:Rating m:type="Int16">3</d:Rating>
165
+ <d:Price m:type="Double">22.8</d:Price>
166
+ </m:properties>
167
+ </content>
168
+ </entry>
169
+ <entry>
170
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(6)</id>
171
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
172
+ <link rel="edit" title="Product" href="Products(6)" />
173
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(6)/Categories/$ref" />
174
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(6)/Categories" />
175
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(6)/Supplier/$ref" />
176
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(6)/Supplier" />
177
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(6)/ProductDetail/$ref" />
178
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(6)/ProductDetail" />
179
+ <title />
180
+ <updated>2017-12-07T23:31:33Z</updated>
181
+ <author>
182
+ <name />
183
+ </author>
184
+ <content type="application/xml">
185
+ <m:properties>
186
+ <d:ID m:type="Int32">6</d:ID>
187
+ <d:Name>Pink Lemonade</d:Name>
188
+ <d:Description>36 Ounce Cans (Pack of 3)</d:Description>
189
+ <d:ReleaseDate m:type="DateTimeOffset">2006-11-05T00:00:00Z</d:ReleaseDate>
190
+ <d:DiscontinuedDate m:null="true" />
191
+ <d:Rating m:type="Int16">3</d:Rating>
192
+ <d:Price m:type="Double">18.8</d:Price>
193
+ </m:properties>
194
+ </content>
195
+ </entry>
196
+ <entry>
197
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(7)</id>
198
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
199
+ <link rel="edit" title="Product" href="Products(7)" />
200
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(7)/Categories/$ref" />
201
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(7)/Categories" />
202
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(7)/Supplier/$ref" />
203
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(7)/Supplier" />
204
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(7)/ProductDetail/$ref" />
205
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(7)/ProductDetail" />
206
+ <title />
207
+ <updated>2017-12-07T23:31:33Z</updated>
208
+ <author>
209
+ <name />
210
+ </author>
211
+ <content type="application/xml">
212
+ <m:properties>
213
+ <d:ID m:type="Int32">7</d:ID>
214
+ <d:Name>DVD Player</d:Name>
215
+ <d:Description>1080P Upconversion DVD Player</d:Description>
216
+ <d:ReleaseDate m:type="DateTimeOffset">2006-11-15T00:00:00Z</d:ReleaseDate>
217
+ <d:DiscontinuedDate m:null="true" />
218
+ <d:Rating m:type="Int16">5</d:Rating>
219
+ <d:Price m:type="Double">35.88</d:Price>
220
+ </m:properties>
221
+ </content>
222
+ </entry>
223
+ <entry>
224
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(8)</id>
225
+ <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
226
+ <link rel="edit" title="Product" href="Products(8)" />
227
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(8)/Categories/$ref" />
228
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(8)/Categories" />
229
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(8)/Supplier/$ref" />
230
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(8)/Supplier" />
231
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(8)/ProductDetail/$ref" />
232
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(8)/ProductDetail" />
233
+ <title />
234
+ <updated>2017-12-07T23:31:33Z</updated>
235
+ <author>
236
+ <name />
237
+ </author>
238
+ <content type="application/xml">
239
+ <m:properties>
240
+ <d:ID m:type="Int32">8</d:ID>
241
+ <d:Name>LCD HDTV</d:Name>
242
+ <d:Description>42 inch 1080p LCD with Built-in Blu-ray Disc Player</d:Description>
243
+ <d:ReleaseDate m:type="DateTimeOffset">2008-05-08T00:00:00Z</d:ReleaseDate>
244
+ <d:DiscontinuedDate m:null="true" />
245
+ <d:Rating m:type="Int16">3</d:Rating>
246
+ <d:Price m:type="Double">1088.8</d:Price>
247
+ </m:properties>
248
+ </content>
249
+ </entry>
250
+ <entry>
251
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(9)</id>
252
+ <category term="#ODataDemo.FeaturedProduct" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
253
+ <link rel="edit" title="Product" href="Products(9)/ODataDemo.FeaturedProduct" />
254
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(9)/ODataDemo.FeaturedProduct/Categories/$ref" />
255
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(9)/ODataDemo.FeaturedProduct/Categories" />
256
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(9)/ODataDemo.FeaturedProduct/Supplier/$ref" />
257
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(9)/ODataDemo.FeaturedProduct/Supplier" />
258
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(9)/ODataDemo.FeaturedProduct/ProductDetail/$ref" />
259
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(9)/ODataDemo.FeaturedProduct/ProductDetail" />
260
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Advertisement" type="application/xml" title="Advertisement" href="Products(9)/ODataDemo.FeaturedProduct/Advertisement/$ref" />
261
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Advertisement" type="application/atom+xml;type=entry" title="Advertisement" href="Products(9)/ODataDemo.FeaturedProduct/Advertisement" />
262
+ <title />
263
+ <updated>2017-12-07T23:31:33Z</updated>
264
+ <author>
265
+ <name />
266
+ </author>
267
+ <content type="application/xml">
268
+ <m:properties>
269
+ <d:ID m:type="Int32">9</d:ID>
270
+ <d:Name>Lemonade</d:Name>
271
+ <d:Description>Classic, refreshing lemonade (Single bottle)</d:Description>
272
+ <d:ReleaseDate m:type="DateTimeOffset">1970-01-01T00:00:00Z</d:ReleaseDate>
273
+ <d:DiscontinuedDate m:null="true" />
274
+ <d:Rating m:type="Int16">7</d:Rating>
275
+ <d:Price m:type="Double">1.01</d:Price>
276
+ </m:properties>
277
+ </content>
278
+ </entry>
279
+ <entry>
280
+ <id>http://services.odata.org/V4/OData/OData.svc/Products(10)</id>
281
+ <category term="#ODataDemo.FeaturedProduct" scheme="http://docs.oasis-open.org/odata/ns/scheme" />
282
+ <link rel="edit" title="Product" href="Products(10)/ODataDemo.FeaturedProduct" />
283
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(10)/ODataDemo.FeaturedProduct/Categories/$ref" />
284
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(10)/ODataDemo.FeaturedProduct/Categories" />
285
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(10)/ODataDemo.FeaturedProduct/Supplier/$ref" />
286
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(10)/ODataDemo.FeaturedProduct/Supplier" />
287
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(10)/ODataDemo.FeaturedProduct/ProductDetail/$ref" />
288
+ <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(10)/ODataDemo.FeaturedProduct/ProductDetail" />
289
+ <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Advertisement" type="application/xml" title="Advertisement" href="Products(10)/ODataDemo.FeaturedProduct/Advertisement/$ref" />
290
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Advertisement" type="application/atom+xml;type=entry" title="Advertisement" href="Products(10)/ODataDemo.FeaturedProduct/Advertisement" />
291
+ <title />
292
+ <updated>2017-12-07T23:31:33Z</updated>
293
+ <author>
294
+ <name />
295
+ </author>
296
+ <content type="application/xml">
297
+ <m:properties>
298
+ <d:ID m:type="Int32">10</d:ID>
299
+ <d:Name>Coffee</d:Name>
300
+ <d:Description>Bulk size can of instant coffee</d:Description>
301
+ <d:ReleaseDate m:type="DateTimeOffset">1982-12-31T00:00:00Z</d:ReleaseDate>
302
+ <d:DiscontinuedDate m:null="true" />
303
+ <d:Rating m:type="Int16">1</d:Rating>
304
+ <d:Price m:type="Double">6.99</d:Price>
305
+ </m:properties>
306
+ </content>
307
+ </entry>
308
+ </feed>