OData ATOM Format - OASIS Open



OData ATOM Atom Format Version 4.0Working Draft 0119 23219 March April 2013Technical Committee:OASIS Open Data Protocol (OData) TCChairs:Barbara Hartel (barbara.hartel@), SAP AGRam Jeyaraman (Ram.Jeyaraman@), MicrosoftEditor:Martin Zurmuehl (martin.zurmuehl@), SAP AGMichael Pizzo (mikep@), MicrosoftRalf Handl (ralf.handl@), SAP AGAdditional artifacts:This prose specification is one component of a Work Product which also includes:HYPERLINK ""OData Atom Vocabulary HYPERLINK "" OData Metadata XML SchemaOther parts (list titles and/or file names)Related work:This specification is related to:OData Version 4.0 Core Part 1: ProtocolOData Version 4.0 Core Part 2: URL ConventionsOData Version 4.0 Core Part 3: Common Schema Definition Language (Common Schema Definition LanguageCSDL) HYPERLINK "" OData ABNF Construction RulesOData ABNF Construction RulesOData JSON Format Version 4.0This specification replaces or supersedes:NoneDeclared XML namespaces: Abstract:The OData protocol is comprised of a set of specifications for representing and interacting with structured content. A server offering an OData Service communicates with clients using that protocol and may offer responses to requests in several formats. This document describes the OData Atom Format, which is one of these possible formats. If the mime type application/atom+xml has been requested by the client, the response of mustany conform to ing server must follow the normative rules declared in this document.Status:This Working Draft (WD) has been produced by one or more TC Members; it has not yet been voted on by the TC or approved as a Committee Draft (Committee Specification Draft or a Committee Note Draft). The OASIS document Approval Process begins officially with a TC vote to approve a WD as a Committee Draft. A TC may approve a Working Draft, revise it, and re-approve it any number of times as a Committee Draft.Copyright ? OASIS Open 20122013. All Rights Reserved.All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.Table of Contents TOC \o "1-4" \h \z \u 1Introduction PAGEREF _Toc354525942 \h 71.1 Terminology PAGEREF _Toc354525943 \h 71.2 Normative References PAGEREF _Toc354525944 \h 71.3 Non-Normative References PAGEREF _Toc354525945 \h 82Atom Format Design PAGEREF _Toc354526083 \h 92.1 Namespaces PAGEREF _Toc354526084 \h 92.1.1 Atom Syndication PAGEREF _Toc354526085 \h 92.1.2 Atom Publishing Protocol PAGEREF _Toc354526086 \h 92.1.3 Atom Tombstone PAGEREF _Toc354526087 \h 92.1.4 OData Data PAGEREF _Toc354526088 \h 92.1.5 OData Metadata PAGEREF _Toc354526089 \h 92.1.6 XML Schema Definition for OData Metadata PAGEREF _Toc354526090 \h 103Requesting the Atom Format PAGEREF _Toc354526091 \h 114Common Characteristics PAGEREF _Toc354526092 \h 124.1 Header Content-Type PAGEREF _Toc354526093 \h 124.2 Message Body PAGEREF _Toc354526097 \h 124.3 Relative URLs PAGEREF _Toc354526099 \h 125Service Document PAGEREF _Toc354526101 \h 135.1 Element app:service PAGEREF _Toc354526102 \h 135.1.1 Element app:workspace PAGEREF _Toc354526103 \h 135.1.1.1 Attribute metadata:name PAGEREF _Toc354526104 \h 135.1.1.2 Attribute metadata:metadata PAGEREF _Toc354526105 \h 135.1.1.3 Attribute metadata:metadata-etag PAGEREF _Toc354526106 \h 145.1.1.4 Element title PAGEREF _Toc354526107 \h 145.1.2 Element app:collection PAGEREF _Toc354526108 \h 14 OData represents entity sets that are not marked with IncludeInServiceDocument="false" (see [OData-CSDL]) as app:collection elements contained within the app:workspace element. PAGEREF _Toc354526109 \h 145.1.2.1 Attribute href PAGEREF _Toc354526115 \h 145.1.2.2 Attribute metadata:name PAGEREF _Toc354526116 \h 145.1.2.3 Element atom:title PAGEREF _Toc354526117 \h 145.1.3 Element metadata:function-import PAGEREF _Toc354526118 \h 145.1.3.1 Attribute href PAGEREF _Toc354526122 \h 145.1.3.2 Attribute metadata:name PAGEREF _Toc354526123 \h 145.1.3.3 Element atom:title PAGEREF _Toc354526124 \h 145.1.4 Element metadata:entity PAGEREF _Toc354526126 \h 145.1.4.1 Attribute href PAGEREF _Toc354526132 \h 155.1.4.2 Attribute metadata:name PAGEREF _Toc354526133 \h 155.1.4.3 Element atom:title PAGEREF _Toc354526134 \h 155.1.5 Element metadata:service-document PAGEREF _Toc354526135 \h 155.1.5.1 Attribute href PAGEREF _Toc354526140 \h 155.1.5.2 Element atom:title PAGEREF _Toc354526141 \h 156Entity PAGEREF _Toc354526142 \h 166.1 Element atom:entry PAGEREF _Toc354526143 \h 166.1.1 Attribute metadata:etag PAGEREF _Toc354526144 \h 166.1.2 Attribute metadata:metadata PAGEREF _Toc354526145 \h 166.1.3 Attribute metadata:metadata-etag PAGEREF _Toc354526146 \h 176.2 Element atom:id PAGEREF _Toc354526147 \h 176.3 Element atom:category PAGEREF _Toc354526150 \h 176.4 Element atom:content PAGEREF _Toc354526151 \h 176.5 Self and Edit Links PAGEREF _Toc354526155 \h 177Property PAGEREF _Toc354526156 \h 197.1 Primitive Value PAGEREF _Toc354526157 \h 197.2 Element metadata:properties PAGEREF _Toc354526158 \h 197.2.1 Element data:[PropertyName] PAGEREF _Toc354526160 \h 197.2.2 Primitive and Enumeration Property PAGEREF _Toc354526161 \h 207.2.3 Complex Property PAGEREF _Toc354526162 \h 207.2.4 Primitive and Enumeration Collection Property PAGEREF _Toc354526163 \h 207.2.5 Complex Collection Property PAGEREF _Toc354526164 \h 207.2.6 Attribute metadata:null PAGEREF _Toc354526165 \h 217.2.7 Attribute metadata:type PAGEREF _Toc354526166 \h 218Navigation Property PAGEREF _Toc354526192 \h 228.1 Navigation Link PAGEREF _Toc354526194 \h 228.1.1 Element atom:link PAGEREF _Toc354526195 \h 228.1.1.1 Attribute rel PAGEREF _Toc354526196 \h 228.1.1.2 Attribute href PAGEREF _Toc354526197 \h 228.1.1.3 Attribute type PAGEREF _Toc354526198 \h 228.1.1.4 Attribute metadata:metadata PAGEREF _Toc354526199 \h 228.1.1.5 Attribute title PAGEREF _Toc354526200 \h 228.2 Association Link PAGEREF _Toc354526221 \h 238.2.1 Element atom:link PAGEREF _Toc354526222 \h 238.2.1.1 Attribute rel PAGEREF _Toc354526223 \h 238.2.1.2 Attribute href PAGEREF _Toc354526224 \h 238.2.1.3 Attribute type PAGEREF _Toc354526225 \h 238.2.1.4 Attribute title PAGEREF _Toc354526226 \h 238.3 Expanded Navigation Property PAGEREF _Toc354526227 \h 238.4 Deep Inserts PAGEREF _Toc354526228 \h 248.5 Bind Operations PAGEREF _Toc354526229 \h 259Stream Property PAGEREF _Toc354526230 \h 269.1 Element atom:link PAGEREF _Toc354526231 \h 269.1.1 Attribute rel PAGEREF _Toc354526232 \h 269.1.2 Attribute href PAGEREF _Toc354526233 \h 269.1.3 Attribute type PAGEREF _Toc354526236 \h 269.1.4 Attribute metadata:etag PAGEREF _Toc354526237 \h 269.1.5 Attribute title PAGEREF _Toc354526238 \h 2610Media Entity PAGEREF _Toc354526239 \h 2710.1 Element atom:link PAGEREF _Toc354526240 \h 2710.1.1 Attribute rel PAGEREF _Toc354526241 \h 2710.1.2 Attribute href PAGEREF _Toc354526242 \h 2710.2 Element atom:content PAGEREF _Toc354526243 \h 2710.2.1 Attribute src PAGEREF _Toc354526244 \h 2710.2.2 Attribute type PAGEREF _Toc354526245 \h 2711Individual Property PAGEREF _Toc354526246 \h 2811.1 Single Scalar Value PAGEREF _Toc354526247 \h 2811.1.1 Element metadata:value PAGEREF _Toc354526248 \h 2811.1.1.1 Attribute metadata:metadata PAGEREF _Toc354526249 \h 2811.1.1.2 Attribute metadata:metadata-etag PAGEREF _Toc354526250 \h 2811.1.1.3 Attribute metadata:type PAGEREF _Toc354526251 \h 2811.1.1.4 Attribute metadata:null PAGEREF _Toc354526252 \h 28 Collection of Scalar Values PAGEREF _Toc354526254 \h 2911.2 PAGEREF _Toc354526255 \h 2911.2.1 Element metadata:value PAGEREF _Toc354526256 \h 2911.2.1.1 Attribute metadata:type PAGEREF _Toc354526257 \h 2912Collection of Entities PAGEREF _Toc354526258 \h 3012.1 Element atom:feed PAGEREF _Toc354526259 \h 3012.1.1 Attribute metadata:metadata PAGEREF _Toc354526260 \h 3012.1.2 Attribute metadata:metadata-etag PAGEREF _Toc354526261 \h 3012.1.3 Element atom:id PAGEREF _Toc354526262 \h 3012.1.4 Element metadata:count PAGEREF _Toc354526263 \h 3012.1.5 Element atom:link PAGEREF _Toc354526264 \h 3012.1.5.1 Attribute rel PAGEREF _Toc354526265 \h 3013Resource Reference PAGEREF _Toc354526266 \h 3213.1 Element metadata:ref PAGEREF _Toc354526267 \h 3213.1.1 Attribute ref PAGEREF _Toc354526268 \h 3214Delta Response PAGEREF _Toc354526269 \h 3314.1 Added/Changed Entity PAGEREF _Toc354526270 \h 3414.2 Deleted Entity PAGEREF _Toc354526271 \h 3414.2.1 Element atom-tombstone:deleted-entry PAGEREF _Toc354526272 \h 3414.2.1.1 Attribute ref PAGEREF _Toc354526273 \h 3514.2.1.2 Attribute when PAGEREF _Toc354526274 \h 3514.2.1.3 Attribute metadata:reason PAGEREF _Toc354526275 \h 3514.3 Link PAGEREF _Toc354526276 \h 3514.3.1 Element metadata:link-entry PAGEREF _Toc354526277 \h 3514.3.1.1 Attribute source PAGEREF _Toc354526278 \h 3514.3.1.2 Attribute relationship PAGEREF _Toc354526279 \h 3514.3.1.3 Attribute target PAGEREF _Toc354526280 \h 3514.3.1.4 Attribute when PAGEREF _Toc354526281 \h 3514.4 Deleted Link PAGEREF _Toc354526282 \h 3514.4.1 Element metadata:deleted-link-entry PAGEREF _Toc354526283 \h 3514.4.1.1 Attribute source PAGEREF _Toc354526284 \h 3614.4.1.2 Attribute relationship PAGEREF _Toc354526285 \h 3614.4.1.3 Attribute target PAGEREF _Toc354526286 \h 3614.4.1.4 Attribute when PAGEREF _Toc354526287 \h 3615Function PAGEREF _Toc354526288 \h 3715.1 Element metadata:function PAGEREF _Toc354526289 \h 3715.1.1 Attribute metadata PAGEREF _Toc354526290 \h 3715.1.2 Attribute target PAGEREF _Toc354526292 \h 3715.1.3 Attribute title PAGEREF _Toc354526293 \h 3716Action PAGEREF _Toc354526294 \h 3816.1 Element metadata:action PAGEREF _Toc354526295 \h 3816.1.1 Attribute metadata PAGEREF _Toc354526296 \h 3816.1.2 Attribute target PAGEREF _Toc354526297 \h 3816.1.3 Attribute title PAGEREF _Toc354526298 \h 3817Action Parameters PAGEREF _Toc354526299 \h 3918Instance Annotations PAGEREF _Toc354526300 \h 4018.1 Element metadata:annotation PAGEREF _Toc354526301 \h 4018.1.1 Attribute target PAGEREF _Toc354526302 \h 4018.1.2 Attribute term PAGEREF _Toc354526303 \h 4018.1.3 Attribute metadata:type PAGEREF _Toc354526304 \h 4018.1.4 Attribute metadata:null PAGEREF _Toc354526305 \h 4018.2 Annotation Values PAGEREF _Toc354526306 \h 4018.2.1 Primitive Values PAGEREF _Toc354526307 \h 4018.2.2 Collection Values PAGEREF _Toc354526308 \h 4118.2.3 Structure Annotations PAGEREF _Toc354526309 \h 4118.3 Instance Annotation Targets PAGEREF _Toc354526310 \h 4218.3.1 Feed PAGEREF _Toc354526311 \h 4218.3.2 Entry PAGEREF _Toc354526312 \h 4218.3.3 Complex Type PAGEREF _Toc354526313 \h 4218.3.4 Property PAGEREF _Toc354526314 \h 4218.3.5 Navigation Property PAGEREF _Toc354526315 \h 4218.3.6 Function or Action PAGEREF _Toc354526316 \h 4218.3.7 Error PAGEREF _Toc354526317 \h 4219Error Reponse PAGEREF _Toc354526318 \h 4319.1 Element metadata:error PAGEREF _Toc354526319 \h 4319.2 Element metadata:code PAGEREF _Toc354526320 \h 4319.3 Element metadata:message PAGEREF _Toc354526321 \h 4319.4 Element metadata:target PAGEREF _Toc354526322 \h 4319.5 Element metadata:details PAGEREF _Toc354526323 \h 4319.5.1 Element metadata:detail PAGEREF _Toc354526324 \h 4319.5.2 Element metadata:code PAGEREF _Toc354526325 \h 4419.5.3 Element metadata:message PAGEREF _Toc354526326 \h 4419.5.4 Element metadata:target PAGEREF _Toc354526327 \h 4419.6 Element metadata:innererror PAGEREF _Toc354526328 \h 4420Extensibility PAGEREF _Toc354526329 \h 4521Conformance PAGEREF _Toc354526330 \h 46Appendix A.Acknowledgments PAGEREF _Toc354526331 \h 47Appendix B.Revision History PAGEREF _Toc354526338 \h 49IntroductionThe OData protocol is comprised of a set of specifications for representing and interacting with structured content. This document describes the OData Atom Format of the payload returned from an OData Service when requesting the application/atom+xml mime type.An OData payload may represent:a single primitive value a sequence of primitive values a single structured (“complex”) value a sequence of structured (“complex”) values an entity (a structured type with an identity)a resource referencea sequence of entitiesa sequence of changes a media resource a single instance of a mime type a single link to a related entity a collection of links to related entities a service document describing the collections (entity sets) exposed by the service an xml document describing the entity model exposed by the service an error documenta batch of requests to be executed in a single request a set of responses returned from a batch request For a description of the xml format for describing an entity model, see REF ODataCSDL \h [OData-CSDL]. For a description of batch requests and responses, see [ REF ODataCore \h OData-Protocol].TerminologyThe key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [ REF rfc2119 \h RFC2119].Normative ReferencesThis document references the following related documents:[OData-ABNF]OData ABNF Construction Rules Version 4.0. DD Month 2013. OASIS Committee Specification Draft 01. See link in “ HYPERLINK \l "RelatedWork" Related work” section on cover page. HYPERLINK "" . [OData-CSDL]OData Version 4.0 Part 3: Common Schema Definition Language (CSDL). DD Month 2013. OASIS Committee Specification Draft 01. See link in “ HYPERLINK \l "RelatedWork" Related work” section on cover page. HYPERLINK "" . [OData-JSON]OData Extension for JSON Data Format Version 4.0. DD 26 April Month 20132. OASIS Committee Specification Draft 01. See link in “ HYPERLINK \l "RelatedWork" Related work” section on cover page. HYPERLINK "" [OData-Protocol]OData Version 4.0 Part 1: Protocol. DD Month 2013. OASIS Committee Specification Draft 01. See link in “ HYPERLINK \l "RelatedWork" Related work” section on cover page. HYPERLINK "" . [OData-URL]OData Version 4.0 Part 2: URL Conventions. DD 26 April Month 2013. OASIS Committee Specification Draft 01. See link in “ HYPERLINK \l "RelatedWork" Related work” section on cover page. HYPERLINK "" [OData-VocAtom]OData Atom Vocabulary.See link in “ HYPERLINK \l "AdditionalArtifacts" Additional artifacts” section on cover page. [RFC2119]S. Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels”, BCP 14,IETF RFC 2119, March 1997. . [RFC3986]Berners-Lee, T., Fielding, R., Masinter, L., “Uniform Resource Identifier (URI): Generic Syntax”, IETF RFC3986, January 2005. HYPERLINK "" . [RFC2616]R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, “Hypertext Transfer Protocol -- HTTP/1.1”, IETF RFC?2616, June 1999. HYPERLINK "" .[RFC3629]F. Yergeau, “UTF-8, a transformation format of ISO 10646”, IETF RFC 3629, November 2003. HYPERLINK "" . [RFC3987]M. Duerst, M. and, M. Suignard, “Internationalized Resource Identifiers (IRIs)”, IETF RFC?3987, Januar 2005. HYPERLINK "" .[RFC3629]F. Yergeau, “UTF-8, a transformation format of ISO 10646”, IETF RFC 3629, November 2003. HYPERLINK "" . [RFC3987]M. Duerst, M. and, M. Suignard, “Internationalized Resource Identifiers (IRIs)”, IETF RFC?3987, January 2005. .[RFC4287]M. Nottingham, M., Ed., and R. Sayre, Ed. “The Atom Syndication Format”, IETF RFC?4287, December 2005. .[RFC5023]J. Gregorio, J., Ed., and B. de hOra, Ed., “The Atom Publishing Protocol”, IETF RFC?5023, October 2007. .[RFC5646]Phillips, A.., Ed., and M. Davis, Ed., “Tags for Identifying Languages”, BCP 47, IETF RFC 5646, September 2009. . [RFC6721]Snell, J., "The Atom 'deleted-entry' Element", IETF RFC 6721, September 2012, . [XML-Schema-2]W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes , S. Gao Gao, P. V. Biron, A. Malhotra, A. Malhotra, D. Peterson, H. S. Thompson, C. M. Sperberg-McQueen, Editors, W3C Recommendation, 5 April 2012,? HYPERLINK "" . Latest version available at? HYPERLINK "" , D. et al., “W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes”, W3C Recommendation, 5 April 2012. HYPERLINK "" . Non-Normative ReferencesNonePrimitive TypeLiteral FormExampleNullRepresents the absence of a value"null"nullEdm.BinaryRepresent fixed- or variable- length binary data((A-F | a-f | 0-9)(A-F | a-f | 0-9))* 23ABFFEdm.BooleanRepresents the mathematical concept of binary-valued logic"true" | "1" "false" | "0" true falseEdm.ByteUnsigned 8-bit integer value[0-9]+42Edm.DateRepresents a date with values ranging from January 1, 1753 A.D. through December 31, 9999 A.D.yyyy "-" mm "-" dd2000-12-12Edm.DecimalRepresents numeric values with fixed precision and scale. This type can describe a numeric value ranging from negative 10^255 + 1 to positive 10^255 -1["-"][0-9]+[.][0-9]*2.345Edm.DoubleRepresents a floating point number with 15 digits precision that can represent values with approximate range of ± 2.23e -308 through ± 1.79e +308["-"][0-9]+ ((.[0-9]+) | [E[+ | -][0-9]+])2.345Edm.SingleRepresents a floating point number with 7 digits precision that can represent values with approximate range of ± 1.18e -38 through ± 3.40e +38["-"][0-9]+.[0-9]2.5Edm.GuidRepresents a 16-byte (128-bit) unique identifier valuedddddddd "-" dddd "-" dddd "-" dddd "-" dddddddddddd d= A-F |a-f | 0-912345678-aaaa-bbbb-cccc-ddddeeeeffffEdm.Int16Represents a signed 16-bit integer value[-][0-9]+16Edm.Int32Represents a signed 32-bit integer value[-] [0-9]+32Edm.Int64Represents a signed 64-bit integer value[-] [0-9]+64Edm.SByteRepresents a signed 8-bit integer value[-] [0-9]+8Edm.StringRepresents fixed- or variable-length character dataany UTF-8 character Note: See definition of UTF8-char in REF RFC3629 \h [RFC3629]ODataEdm.TimeOfDayRepresents the time of day with values ranging from 0:00:00.x to 23:59:59.y, where x and y depend upon the precisionDefined by the lexical representation for xs:time in REF XSD2 \h \* MERGEFORMAT [XML-Schema-2]23:59:59.999999999999Edm.DateTimeOffsetRepresents date and time as an Offset in minutes from GMT, with values ranging from 12:00:00 midnight, January 1, 1753 A.D. through 11:59:59 P.M, December 9999 A.DDefined by the lexical representation for xs:datetime (including timezone offset) in REF XSD2 \h \* MERGEFORMAT [XML-Schema-2]2002-10-10T17:00:00ZEdm.DurationRepresents a duration in days, hours, minutes, seconds and fractions of secondsDefined by the lexical representation for xs:dayTimeDuration in REF XSD2 \h \* MERGEFORMAT [XML-Schema-2]P12DT23H59M59.99999SEdm.GeographyAbstract base type for all Geography types.N/AN/AEdm.GeographyPointRepresents a point in a round-earth coordinate system.srid "Point(" point ")" srid= "SRID=" 1*5DIGIT ";"point= LONG LAT Where LONG and LAT are EDM.Doubles representing Longitude and Latitude.SRID=123435;Point(33.84 -117.91)Edm.GeographyLineStringRepresents a linestring in a round-earth coordinate system.srid "LineString(" linestring ")" linestring= point ["," point]+SRID=123435;Linestring(33.84 -117.91,48.87 2.78)Edm.GeographyPolygonRepresents a polygon in a round-earth coordinate system.srid "Polygon(" polygon ")"polygon= ring "," [ring ","]* ring= "(" firstpoint "," [point ","]* firstpoint ")" ]* ")"firstpoint = pointSRID=123435;Polygon((33.84 -117.91,48.87 2.78,33.84 -117.91))Edm.GeographyCollectionRepresents a collection of Geography Values.srid "GeographyCollection(" geographycollection ")"geographycollection= geographyvalue ["," geographyvalue]*geographyvalue="Point("point")" |"LineString(" linestring ")" | "Polygon(" polygon ")" |"GeographyCollection(" geographycollection ")" |"MultiPoint("multipoint ")" |"MultiLineString("multilinestring ")" |"MultiPolygon("multipolygon ")"SRID=123435;GeographyCollection(Point(33.84 -117.91),Point(48.87 2.78))Edm.GeographyMultiPointRepresents a collection of points in a round-earth coordinate systemsrid "MultiPoint(" multipoint ")" multipoint= point ["," point]*SRID=123435;MultiPoint(33.84 -117.91,(48.87 2.78))Edm.GeographyMultiLineStringRepresents a collection of linestrings in a round-earth coordinate system.srid "MultiLineString(" multilinestring ")"multilinestring= "(" linestring ")" [",(" linestring ")" ]*SRID=123435;MultiLineString((33.84 -117.91,48.87 2.78),(33.84 -117.91, 28.36 -81.56))Edm.GeographyMultiPolygonRepresents a collection of polygons in a round-earth coordinate system.srid "MultiPolygon(" multipolygon ")"multipolygon= "(" polygon ")" [",(" polygon ")"]*SRID=123435;MultiPolygon(((33.84 -117.91,(33.84 -117.91,28.36 -81.56,33.84 -117.91)))Edm.GeometryAbstract base type for all Geometry typesN/AN/AEdm.GeometryPointRepresents a point in a flat-earth coordinate system.srid "Point(" point ")"SRID=123435;Point(33.84 -117.91)Edm.GeometryLineStringRepresents a linestring in a flat-earth coordinate system.srid "LineString(" linestring ")"SRID=123435;Linestring(33.84 -117.91,48.87 2.78)Edm.GeometryPolygonRepresents a polygon in a flat-earth coordinate system.srid "Polygon(" polygon ")"SRID=123435;Polygon((33.84 -117.91,48.87 2.78,33.84 -117.91))Edm.GeometryCollectionRepresents a collection of Geometry Values.srid "GeometryCollection(" geometrycollection ")"geometrycollection= geometryvalue ["," geometryvalue]*geometryvalue= "Point("point")" |"LineString(" linestring ")" | "Polygon(" polygon ")" |"GeometryCollection(" geometrycollection ")" |"MultiPoint("multipoint ")" |"MultiLineString("multilinestring ")" |"MultiPolygon("multipolygon ")"SRID=123435;GeometryCollection(Point(33.84 -117.91),Point(48.87 2.78))Edm.GeometryMultiPointRepresents a collection of points in a flat-earth coordinate system.srid "MultiPoint(" multipoint ")"SRID=123435;MultiPoint((33.84 -117.91),(48.87 2.78))Edm.GeographyMultiLineStringRepresents a collection of linestrings in a flat-earth coordinate system.srid "MultiLineString(" multilinestring ")"SRID=123435;MultiLineString((33.84 -117.91,48.87 2.78),(33.84 -117.91,28.36 -81.56))Edm.GeographyMultiPolygonRepresents a collection of polygons in a flat-earth coordinate system.srid "MultiPolygon(" multipolygon ")"SRID=123435;MultiPolygon(((33.84 -117.91,(33.84 -117.91,28.36 -81.56,33.84 -117.91)))Use of Atom Format DesignThe Atom Syndication Format REF RFC4287 \h [RFC4287] defines an XML-based format for describing collections (“feeds”) made up of individual “entries”. The Atom Publishing Protocol REF RFC5023 \h [RFC5023] defines an application-level protocol based on HTTP transfer of Atom-formatted representations.OData builds on REF RFC4287 \h [RFC4287] and REF RFC5023 \h [RFC5023] by defining additional conventions and extensions for representing and querying entity data.As specified in REF RFC4287 \h \* MERGEFORMAT [RFC4287] and REF RFC5023 \h \* MERGEFORMAT [RFC5023] processors that encounter foreign markup MUST NOT stop processing and MUST NOT signal an error. This includesclients MUST be prepared to handle and safely ignore additional elements or attributes in any namespace, including elements and attributes in the OData Data and Metadata namespaces, e.g. values for properties not declared in $metadata, and annotations that are not defined in the version of the payload being returned.?NamespacesOData defines meaning for elements and attributes defined in the following namespaces.Atom NamespaceSyndicationAtom elements and attributes are defined within the Atom namespace: . In this specification the namespace prefix atom is used to represent the Atom Namespace, however the prefix name is not prescriptive.Atom Publishing Protocol NamespaceAtom Publishing Protocol (AtomPub) elements and attributes are defined within the AtomPub namespace: . In this specification the namespace prefix app is used to represent the AtomPub Namespace, however the prefix name is not prescriptive.Atom Tombstone NamespaceThe deleted-entry element is defined within the Atom Tombstone namespace: . In this specification the namespace prefix atom-tombstone is used to represent the Atom Tombstone Namespace, however the prefix name is not prescriptive.OData Data NamespaceElements that describe the actual data values for an entity are qualified with the OData Data Namespace: this specification the namespace prefix data is used to represent the OData Data Namespace, however the prefix name is not prescriptive.OData Metadata NamespaceAttributes and elements that represent metadata (such as type, null usage, and entry-level etags) are defined within the OData Metadata Namespace: . Custom elements or attributes MUST NOT use this namespace.In this specification the namespace prefix metadata is used to represent the OData Metadata Namespace, however the prefix name is not prescriptive.The xml:base AttributeXML Schema Definition for OData MetadataThis specification contains a normative XML schema for the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata namespace, see links in the “ HYPERLINK \l "AdditionalArtifacts" Additional artifacts” section on cover page.It only define the shape of well-formed OData metadata, but is not descriptive enough to define what correct OData metadata is. This specification document defines additional rules that correct OData metadata MUST fulfill. In case of doubt on what makes OData metadata correct the rules defined in this specification document take precedence.Requesting the Atom FormatThe OData Atom format MAY be requested using the $format query option in the request URL with the MIME type application/atom+xml, or the abbreviation atom.Alternatively, this format MAY be requested using the Accept header with the MIME type application/atom+xml. If specified, $format overrides any value specified in the Accept header.The HYPERLINK \l "_Service_Document" service document MAY additionally be requested with the more specific MIME type application/atomsvc+xml using either $format or Accept.All resources MAY additionally be requested with the less specific MIME type application/xml using either $format or Accept., or the abbreviation xml using $mon CharacteristicsPayload FormatHeader Content-TypeThe Content-Type header for Atom responses MUST use the most specific MIME type for the requested resource that is indicated as acceptable by the client.Requests using the $format query option with the abbreviation atom MUST receive the MIME typeapplication/atomsvc+xml for the HYPERLINK \l "_Service_Document" service document,application/atom+xml for entities and collections of entities, references, or changes,application/xml for all other resources.Requests using $format or an Accept header with value application/atom+xml MUST receive the MIME typeapplication/xml for the HYPERLINK \l "_Service_Document" service document,application/atom+xml for entities and collections of entities, refereces, or changes,application/xml for all other resources.Requests using $format or an Accept header with value application/xml or $format with the abbreviation xml MUST receive the MIME type application/xml for all resources.Data modification requests for entities or collections of entities MUST specify a Content-Type header with a value of either application/atom+xml or application/xml. Data modification requests for all other resources MUST specify a Content-Type header with a value of application/xml.Requests and responses in ATOM MUST have a Content-Type header value of application/atom. Message BodyMessage BodyEach message body MUST be represented as an XML document with a single root element. This element is either the representation of an HYPERLINK \l "_Representing_an_Entity" entity, an HYPERLINK \l "_Representing_an_Entity_2" entity reference or a HYPERLINK \l "_Representing_a_Complex" complex type instance, a HYPERLINK \l "_Representing_a_Primitive" primitive value, a HYPERLINK \l "_Toc345948708" collection of primitive values, HYPERLINK \l "_Toc345948708" a collection of complex values, a HYPERLINK \l "_Toc342598610" collection of entities, or a collection of entries that represent HYPERLINK \l "_Representing_Changes_(Deltas)_1" changes to a previous result.Relative URLsOData payloads may MAY use relative references as defined in HYPERLINK \l "RFC3986" REF RFC3986 \h [RFC3986] by specifying the xml:base attribute to define a base URI for relative references defined within the scope of the element containing the xml:base attribute.xml:baseEntity Container as a Workspace within a Service DocumentsAtomPub defines the concept of a sService dDocument to represent the set of available collections. OData uses the sService dDocuments to describe the set of entity sets, named entities, and parameterless function imports published by t available through the service.Example:<app:service xmlns:app="" xmlns:atom="" xmlns:metadata="" metadata:metadata="$metadata" metadata:metadata-etag="Hugo"> <app:workspace> <atom:title type="text">Data</atom:title> <app:collection href="OrderDetails"> <atom:title type="text">Order Details</atom:title> </app:collection> <metadata:entity href="Contoso"> <atom:title>Contoso Ltd.</atom:title> </metadata:entity> <metadata:function-import href="TopProducts"> <atom:title>Best-Selling Products</atom:title> </metadata:function-import> <metadata:service-document href="EasternRegionSales"> <atom:title>Eastern Region Sales</atom:title> </metadata:service-document> </app:workspace></app:service>Service Document as anElement app:service ElementThe atom Serviceservice dDocument is contains a singlerepresented by the app:service element. The app:service element contains one or more app:workspace elements, each of which represents a set of collections and named entities.Entity Container as anElement app:workspace ElementOData represents the each entity container as an app:workspace element. An app:workspace element contains zero or more app:collection elements, one for each collection of entity seties published by the container, zero or more metadata:function-import elements, one for each function import published by the continer, and zero or more metadata:entity elements, one for each named entity published by the container.Attribute metadata:nameThe metadata:name attribute MUST contain the namespace- or alias-qualified name of the entity container that is represented by the HYPERLINK \l "appWorkspace" app:workspace element. It MAY be omitted if the workspace represents the default entity container.For more information on namespace- and alias-qualified names, see REF ODataCSDL \h [OData-CSDL]. Attribute metadata:metadataAn app:workspace element MUST have a metadata attribute, defined in the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata namespace, whose value is the URL that returns the metadata document of the service. For more information on the format of the metadata document, see HYPERLINK \l "ODataCSDL" [OData-CSDL].Attribute metadata:metadata-etagAn app:workspace element MAY have a metadata:metadata-etag attribute to specify an ETag that can be used to determine the current version of the service's metadata document.For details on how ETags are used, see [ REF OData \h OData-Protocol].Entity Sets asElement app:collection ElementsElement titleAs defined in HYPERLINK \l "RFC5023" [RFC-5023], the app:workspace element MUST contain a title element containing the human-readable description of the workspace. This value may be different from the name of the entity container exposed by the HYPERLINK \l "_Attribute_metadata:name" metadata:name attribute. Entity Sets asElement app:collection ElementsOData represents entity sets that are not marked with IncludeInServiceDocument="false" (see [ REF csdl \h OData-CSDL]) as app:collection elements contained within the app:workspace element. The app:collection element MUST contain an href attribute which represents a URL that can be used to retrieve the members of the entity set.<app:collection href="OrderDetails"> <atom:title type="text">Order Details</atom:title></app:collection>Attribute hrefThe app:collection element MUST contain an href attribute which represents a URL that can be used to retrieve the members of the entity set.Attribute metadata:nameThe metadata:name attribute MUST contain the name of the entity set which MAY be unqualified if the enclosing HYPERLINK \l "appWorkspace" app:workspace represents the default entity container.It MAY be omitted if its value is identical the the value of the href attribute, which is the case if the service uses relative URLs following the OData URL conventions described in REF ODataURL \h [OData-URL].EEntity Set Name as anlement atom:title ElementThe atom:title element within the app:collection MUST contain a human-readable text describingdescription of the entity set SHOULD which MAYcontain be the name of the entity set. It MAY contain a human-readable text describing the entity set.Function Imports asElement metadata:function-import ElementsOData represents function imports that are marked with IncludeInServiceDocument="true" (see [ REF csdl \h OData-CSDL]) as metadata:function-import elements.The metadata:function-import element MUST contain an href attribute which represents a URL that can be used to retrieve the function import result:<metadata:function-import> href="TopOrders"> <atom:title>Top Orders</atom:title</metadata:function-import>Attribute hrefThe metadata:function-import element MUST contain an href attribute which represents a URL that can be used to retrieve the function import result.: Attribute metadata:nameThe metadata:name attribute MUST contain the name of the function import which MAY be unqualified if the enclosing HYPERLINK \l "appWorkspace" app:workspace represents the default entity container.It MAY be omitted if its value is identical the the value of the href attribute, which is the case if the service uses relative URLs following the OData URL conventions described in REF ODataURL \h [OData-URL].Function Import Name as anElement atom:title ElementThe atom:title element within the metadata:function-import element MUST contain a human-readable text describingdescription of the function import which MAY be SHOULD contain the name of the function import. It MAY contain a human-readable text describing the function import.Named Entities asElement metadata:entity ElementsOData represents named entities as metadata:entity elements.The metadata:entity element MUST contain an href attribute which represents a URL that can be used to retrieve the entity:<metadata:entity href="Contoso" /> <atom:title>Top Orders</atom:title</metadata:function-import>Attribute hrefThe metadata:entity element MUST contain an href attribute which represents a URL that can be used to retrieve the entity.Attribute metadata:nameThe metadata:name attribute MUST contain the name of the entity which MAY be unqualified if the enclosing HYPERLINK \l "appWorkspace" app:workspace represents the default entity container.It MAY be omitted if its value is identical the the value of the href attribute, which is the case if the service uses relative URLs following the OData URL conventions described in REF ODataURL \h [OData-URL]. Entity Name as anElement atom:title ElementThe atom:title element within the metadata:entity element MUST contain a human-readable text describingdescription of the entity which MAY beSHOULD contain the name of the entity.Element metadata:service-documentOData represents related service documents as metadata:service-document elements.<metadata:service-document href="EasternRegionSales"> <atom:title>Eastern Region Sales</atom:title></metadata:service-document>Attribute hrefThe metadata:service-document element MUST contain an href attribute which represents a URL that can be used to retrieve the related service document. Element atom:titleThe metadata:service-document element MUST contain an atom:title element containing a human-readable description of the related service document. It MAY contain a human-readable text describing the entity.Entityy InstancesEntitiy Instances, whether individual or within an AtomTOM feed, are represented as atom:entry elements. For example, the following atom:entry element describes a Product:Example:<entry> <id>(0)</id> <title /> <summary /> <updated>2012-03-30T07:11:05Z</updated> <author> <name /> </author> <link rel="edit" title="Product" href="Products(0)" /> <link rel="" type="application/atom+xml;type=entry" title="Category" href="Products(0)/Category" /> <link rel="" type="application/atom+xml;type=entry" title="Supplier" href="Products(0)/Supplier" /> <category term="ODataDemo.Product" scheme="" /> <content type="application/xml"> <metadata:properties> <data:ID metadata:type="Edm.Int32">0</data:ID> <data:Name>Bread</data:Name> <data:Description>Whole grain bread</data:Description> <data:ReleaseDate metadata:type="Edm.Date"> 1992-01-01 </data:ReleaseDate> <data:DiscontinuedDate metadata:type="Edm.Date" metadata:null="true" /> <data:Rating metadata:type="Edm.Int32">4</data:Rating> <data:Price metadata:type="Edm.Decimal">2.5</data:Price> </metadata:properties> </content></entry>This section defines the elements and attributes within an atom:entry element that are assigned meaning in OData.The Element atom:entry ElementAn atom:entry element is used to represent a single entity, which is an instance of a structured type with an identity.TAttributehe metadata:etag AttributeThe atom:entry element MAY contain a metadata:etag attribute, representing an opaque string value that can be used in a subsequent request to determine if the value of the entity has changed. For details on how ETags are used, see to [ REF ODataCore \h OData-Protocol].Attribute metadata:metadataIf the root of the response is an atom:entry element, or the entity set cannot be determined from the HYPERLINK \l "_The_odata.metadata_Annotation" metadata URL of the feed, the atom:entry element MUST have a metadata attribute, defined in the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata namespace, whose value is the metadata URL that describes the entry. This URL MAY be absolute or relative to the metadata URL of the feed. For more information on the metadata URL, see HYPERLINK \l "ODataCore" [OData-Protocol].Attribute metadata:metadata-etagIf the root of the response is an atom:entry element, it MAY have a metadata:metadata-etag attribute to specify an ETag that can be used to determine the current version of the service's metadata document.For details on how ETags are used, see [ REF OData \h OData-Protocol].The Element atom:id ElementThe atom:id element defines a durable, opaque, globally unique identifier for the entry. Its content must be an IRI as defined in REF RFC3987 \h [RFC3987]. The consumer of the feed must not assume this IRI can be de-referenced, nor assume any semantics from its structure.The Attribute metadata:set AttributeFor some client requests, the response MAY include entities whose entity set cannot be determined from the request. In such cases, the atom:id element for related entities MUST include the metadata:set attribute whose string value is the fully qualified entity set name.Entity Type as anElement atom:category ElementAn OData entry MUST contain a single atom:category element with a scheme attribute equal to "" to identify the entity type of the entry. An atom:category element describing an OData entity type MUST have a term attribute whose value is the namespace- or alias-qualified name of the entity type of the entry, in which case the type MUST be defined in the metadata document indicated by the current metadata URL, otherwise it MUST be a full URL to a metadata document with the namespace- qualified name of the instance’s type appended as a URL fragment.For example, the following represents an entity whose type is “Customer”, defined within the current metadata document:<category rel="" term="Customer"/>The following represents an entity whose type is “Customer”, defined within the “$metadata” document:<category rel="" term="$metadata#Customer"/>For more information on namespace- and alias-qualified names, see REF ODataCSDL \h [OData-CSDL]. The entry MAY contain additional atom:category elements with different scheme values; such atom:category elements have no semantic meaning in OData.Entity Content within anElement atom:content ElementThe atom:content element defines contains the properties of the entity as a HYPERLINK \l "metadataProperties" metadata:properties element unless the entity is a HYPERLINK \l "_Media_Entity"media entity.the content of the entry.Media Entities as Media Link Entries using the src AttributeThe atom:content element MAY contain a src attribute, in which case the entry is a Media Link Entry, used to represent a Media Resource (for example, a photo). The value of the src attribute MUST be a URI that can be used to retrieve the content of the Media Resource.For Media Entities, the atom:content element MUST be empty. In this case, properties of the Media Resource (other than the stream) are represented by the HYPERLINK \l "metadataProperties" metadata:properties element as a sibling to, rather than a child of, the atom:content element.Self and Edit Links as atom:link – Self and Edit Links ElementsAtom defines two types of links within an entry that represent retrieve or update/delete operations on the entry:. atom:link elements with a rel attribute of "self" can be used to retrieve the entity (via the URL specified in the href attribute). atom:link elements with a rel attribute of "edit" can be used to retrieve, update, or delete the entity (via the URL specified in the href attribute).An atom:entry element representing an OData entity SHOULD contain a self link, an edit link, or both for a particular entry, but MUST NOT contain more than one edit link for a given entryentity. The absence of a self link implies that the edit link can be used to retrieve the entity. Absence The absence of an edit link implies that the entry entity is read-only.PropertyPrimitive ValueOData Atom and XML payloads represent values of primitive types following the rules of REF ODataABNF \h [OData-ABNF].Geography and Geometry values are represented according to the fullXxxLiteral.Values of the other primitive types are represented according to the xxxBody rules, i.e. Edm.Binary as binaryBody etc.Example:<metadata:properties><data:NullValue metadata:null="true"/><data:TrueValue metadata:type="Edm.Boolean">true</data:TrueValue><data:FalseValue metadata:type="Edm.Boolean">false</data:FalseValue><data:IntegerValue metadata:type="Edm.Sbyte">-128</data:IntegerValue><data:DoubleValue metadata:type="Edm.Double" >3.1415926535897931</data:DoubleValue><data:DecimalValue metadata:type="Edm.Decimal">34.95</data:DecimalValue><data:StringValue>Say "Hello", then go!</data:StringValue><data:DateValue metadata:type="Edm.Date">2012-12-03</data:DateValue><data:DateTimeOffsetValue metadata:type="Edm.DateTimeOffset" >2012-12-03T07:16:23Z</data:DateTimeOffsetValue><data:DurationValue metadata:type="Edm.Duration" >P12DT23H59M59.999999999999S</data:DurationValue><data:TimeOfDayValue metadata:type="Edm.TimeOfDay" >07:59:59.999</data:TimeOfDayValue><data:GuidValue metadata:type="Edm.Guid" >01234567-89ab-cdef-0123-456789abcdef</data:GuidValue><data:Int64Value metadata:type="Edm.Int64">0</data:Int64Value><data:ColorEnumValue metadata:type="org.example.Pattern" >Yellow</data:ColorEnumValue><data:GeographyPoint metadata:type="Edm.GeographyPoint" >SRID=0;Point(142.1 64.1)</data:GeographyPoint></metadata:properties>Note that the line break in the body of StringValue is intentional, it represents a line break.Entity Properties within aElement metadata:properties ElementThe metadata:properties element represents a subset of the property values for an entity. that are not exclusively mapped to defined or custom elements, as described in HYPERLINK \l "CustomMappingToAtomElements" Custom Mapping to Atom Elements. The metadata:properties element MUST be a direct child of the atom:content element EXCEPT for the case where the entry represents a HYPERLINK \l "MediaLinkEntries" media entity, in which case the metadata:properties element MUST be a sibling of the atom:content element. In the case that all properties of the entity are exclusively mapped to defined or custom elements, an empty metadata:properties element MAY be present.Entity Property as aElement data:[PpropertyName] ElementWithin the metadata:properties element, individual entity data values of the entityproperties are represented as elements where the name of the element is the name of the entity property within the OData Data Namespace.The data:[PropertyName] element MAY include a metadata:type attribute to specify the type of the simpleprimitive- or complex-typed instance.For example, the following element within an metadata:properties element represents the “Rating” field with an integer value of 4: <data:Rating metadata:type="Edm.Int32">4</data:Rating> The data:[PropertyName] element MAY include a metadata:null attribute to specify that the simpleprimitive- or complex-typed instance has the null value.For example: <data:Rating metadata:null="true" />Simple TypedPrimitive and Enumeration and Enumeration PropertyiesFor simple primitivetyped properties, the content of the data:[pPropertyName] element represents the value of the property following the syntax for HYPERLINK \l "_Relationships_as_atom:link" primitive values. For example, the following would represent the string value “CEO” for the Title property of an entity: <data:Title>CEO</data:Title>The following would represent the combined enumeration values Yellow and Solid for the Pattern property of an entity: <data:Pattern metadata:type="org.example.Pattern">Solid,Yellow</data:Pattern>The following would represent the combined enumeration values Yellow and Solid for the Pattern property of an entity: <data:Pattern metadata:type="org.example.Pattern">Solid,Yellow</data:Pattern>Complex Typed PropertyiesFor complex typed properties, the content of the data:[PpropertyName] element consists of nested data:[PpropertyName] elements describing the properties of the complex type. It MAY include a metadata:type attribute to specify the type. For example, the complex typed property “Name”, with properties “FirstName” and “LastName” would be respresented as:<data:Name metadata:type="MyModel.FullName"> <data:FirstName>Julie</data:FirstName> <data:LastName>Swansworth</data:LastName> </data:Name>Collection of Simple TypedPrimitive and Enumeration Collection PropertyiesFor properties that represent a collection of simple typesprimitive or enumeration values, the data:[PpropertyName] element may include a metadata:type attribute with a value of "Collection([PrimitiveSimpleTypeName])". The content of the element consists of nested child elements named “element”, in the OData Metadata Namespace, for each value in the collection. The value of each simple-typed <metadata:element> in the collection follows the syntax for HYPERLINK \l "_Relationships_as_atom:link" primitive values.<metadata:element> elements MUST NOT contain the metadata:null="true" attribute value.For example, the collection typed property “Emails” would be respresented as:Example:<data:EmailAddresses metadata:type="Collection(Edm.String)"> <metadata:element>Julie@</metadata:element> <metadata:element>Julie.Swansworth@</metadata:element> </data:EmailAddresses>Collection of Complex Collection Typed PropertyiesFor properties that represent a collection of complex types, the data:[PpropertyName] element may include a metadata:type attribute with a value of "Collection([ComplexTypeName])“ attribute. The content of the element consists of nested child elements named “element", in the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata Namespace, for each complex typed value in the collection. The <metadata:element> element representing the instance may include a metadata:type attribute to specify the type of the individual element. The value of each complex-typed <metadata:element> follows the syntax for complex-typed properties.<metadata:element> elements MUST NOT be empty and MUST NOT contain the metadata:null="true" attribute.For example, the collection typed property “PhoneNumbers” would be represented as:Example:<data:PhoneNumbers metadata:type="Collection(Person.PhoneNumber)""> <metadata:element metadata:type="Person.PhoneNumber"> <data:Number>425-555-1212</data:Number> <data:PhoneType>Home</data:PhoneType> </metadata:element> <metadata:element metadata:type="Person.CellPhoneNumber"> <data:Number>425-555-0178</data:Number> <data:PhoneType>Cell</data:PhoneType> <data:CellCarrier>Sprint</data:CellCarrier> </metadata:element> </data:PhoneNumbers> AttributeNulls represented using the metadata:null AttributeNull-valued properties are represented as empty elements with the metadata:null="true" attribute. The metadata:null attribute distinguishes null values from other empty content (such as an empty string). For example, the following represents an empty apartment number:<data:Apartment metadata:null="true"/>The absence of the metadata:null attribute is equivalent to specifying metadata:null="false".Data Type represented using theAttribute metadata:type AttributeIf the type of the property is anything other than Edm.String, the property representation MUST contain a metadata:type attribute to specify the namespace- or alias-qualified type of the property. If the type is defined in a different metadata document than specified by the current metadata URL, it MUST be a full URL to a metadata document with the namespace- or alias-qualified name of the instance’s type appended as a URL fragment. For example, the following specifies that the Age property is a 32-bit integer with the value 25:<data:Age metadata:type="Edm.Int32">25</data:Age>Primitive Types Valuesin AtomOData Atom and XML payloads serialize represent values of primitive types types as shown in the table below.For full syntaxfollowing the rules of, see REF ODataABNF \h [OData-ABNF].Geography and Geometry values are represented according to the fullXxxLiteral.Values of the other primitive types are represented according to the xxxBody rules, i.e. Edm.Binary as binaryBody etc.Example:<metadata:properties><data:NullValue metadata:null="true"/><data:TrueValue>true</data:TrueValue><data:FalseValue>false</data:FalseValue><data:IntegerValue>-128</data:IntegerValue><data:DoubleValue>3.1415926535897931</data:DoubleValue><data:DecimalValue>34.95</data:DecimalValue><data:StringValue>Say "Hello",then go</data:StringValue><data:DateValue>2012-12-03</data:DateValue><data:DateTimeOffsetValue>2012-12-03T07:16:23Z</data:DateTimeOffsetValue><data:DurationValue>P12DT23H59M59.999999999999S</data:DurationValue><data:TimeOfDayValue>07:59:59.999</data:TimeOfDayValue><data:GuidValue>01234567-89ab-cdef-0123-456789abcdef</data:GuidValue><data:Int64Value>0</data:Int64Value><data:ColorEnumValue>Yellow</data:ColorEnumValue><data:GeographyPoint>SRID=0;Point(142.1 64.1)</data:GeographyPoint></metadata:propertiesNote that the line break in the body of StringValue is intentional, it represents a line break.Navigation PropertyA navigation property represents a reference from a source entity to zero or more otherrelated entities.There are two representations for a navigation property: HYPERLINK \l "_Navigation_Link" Navigation Link and HYPERLINK \l "_Expanded_Navigation_Property" Expanded Navigation Property. The HYPERLINK \l "_Navigation_Link" Navigation Link representation represents each related entity or set of entities with a URL. The HYPERLINK \l "_Expanded_Navigation_Property" Expanded Navigation Property representation represents each related entity or set of entities with its expanded contents.A client MAY request that a navigation property be expanded, using a combination of $expand and $select. The service MUST represent each navigation property so requested in the expanded format.Navigation LinkRelationships as atom:link ElementsThe navigation link is a URL that allows retrieving the related entity or collection of entities, It is represented as an OData uses an atom:link elementss to represent a relationships between entities navigation properties of an entity.Example for products related to a category: For example, the set of related products for a particular category may be represented through an atom:link element as a child of a category entry element as follows:<atom:link rel="" href="Categories(0)/Products" type="application/atom+xml;type=feed" title="Products"/>The related data for the relationship MAY be included in the entity using a single child metadata:inline element.The rel Attribute of an atom:link Element atom:link In the case where the atom:link element describes a navigation link the attributes rel, href, type, metadata:metadata, and title are to be used as described in the following subsections. Attribute rel Representing a RelationshipThe rel attribute for an atom:link element that represents a relationship MUST be present and is made up of the string “” followed by the name of the navigation property on the entity. Note that the full name must be used; the use of relative URLs in the rel attribute is not allowed.The href Attribute hrefof an atom:link Element Representing a RelationshipThe href attribute of an atom:link element describing an OData relationship MUST be present and specifies the URL that can be used to retrieve the related entities. This URL may be relative or absolute.The type Attribute typeof an atom:link Element Representing a RelationshipThe type attribute on an atom:link element describing an OData relationship MUST be present and determines whether the cardinality of the related end is a single entity or a collection of entities.: The value a single entity, in which case the type="“application/atom+xml;type=entry"”, represents a single entity and the value or "a collection of entities, in which case the type="“application/atom+xml;type=feed" an collection of entities.”The metadata:metadata Attribute metadata:metadataof an atom:link Element Representing a RelationshipThe metadata:metadata Attribute MUST be present if the navigation property is not defined in metadata. The value of the metadata:metadata aAttribute, defined in the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata namespace, specifies the metadata URL that describes the type of the related entity or entities An atom:link element describing an OData relationship whose navigation property is not defined in metadata MUST have a metadata attribute, defined in the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata namespace, whose value is the metadata URL that describes the type of the related entity or entities. For details on the metadata URL, see HYPERLINK \l "ODataCore" [OData-Protocol].The title Attribute title of an atom:link Element Representing a RelationshipThe title attribute on an atom:link element describing an OData relationship SHOULD be present and equal to the name of the navigation property, and provides human-readable, possibly language-dependent, and not necessarily unique information about the link.TInline Content within a metadata:inline ElementAn HYPERLINK \l "atomLink" atom:link element describing representing an OData expanded relnavigation property MUST ationship MAY contain a single metadata:inline element. The value of the metadata:inline element MUST be the correct representation of the related entity or entity set. If at most one entity can be related, the value is the representation of the related entity, or the metadata:inline element is empty if no entity is currently related.If a set of entities can be related, it MUST be represented as an HYPERLINK \l "_Collection_of_Entities_1" atom:feed. An empty set of entities (one that contains no entity type instances) MUST be represented as an empty atom:feed. Each entity MUST be HYPERLINK \l "_Representing_an_Entity_1" represented as an atom:entry element or as HYPERLINK \l "_Resource_Reference" an entity reference.Example:, in which case the element contains the feed (in the case of a collection) or entry (in the case of a single entity), where the feed or entry is a child of the metadata:inline element formatted as per this document. <atom:link rel="" href="Categories(0)/$links/Products" type="application/xml"title="Products"><metadata:inline> <atom:feed> ... </atom:feed></metadata:inline></atom:link>An empty metadata:inline element means that there is no content associated with the relationship (i.e., the navigation property is null). Note that this case is distinct from the absence of a metadata:inline element which simply means that the contents of the relationship is deferred (not included in the payload). It is valid to include the metadata:inline element in only a subset of the entries within a feed.Relationship Association Links as atom:link ElementsThe association link is a URL that allows retrieving the reference or collection of references to the related entity or entities. It is represented as OData uses an atom:link elements to represent a association link. An association link is used to describe a set of relationship links between an entity and related entities.the collection of relationship HYPERLINK \l "Links" link(s)association HYPERLINK \l "Links" link(s) between entities.For eExample for products related to a , the set of HYPERLINK \l "Links" links between a category and related products may be represented through an atom:link element as a child of a category entry element as follows: <atom:link rel="" href="Categories(0)/$links/Products/$ref" type="application/xml" title="Products"/>Element atom:linkA collection of relationship association links is represented by an atom:link element. The attributes rel, href, type, metadata:metadata, and title are to be used as described in the following subsections.The Attribute rel Attribute of an atom:link Element Representing Relationship LinksThe rel attribute for an atom:link element that represents a collection of relationship links MUST be present. The value and is MUST be made up of the string "" followed by the name of the navigation property on the entity. Note that the full name must be used; the use of relative URLs in the rel attribute is not allowed.The Attribute href Attribute of an atom:link Element Representing Relationship LinksThe href attribute of an atom:link element describing a relationship link MUST be present and MUST specifies specify the URL that represents the collection of relationship links. This URL may be relative or absolute.Attribute The type Attribute of an atom:link Element Representing Relationship LinksThe type attribute on an atom:link element describing a relationship link MUST be present and equal to the content typewith the string “"application/xml" as value”..Attribute The title Attribute of an atom:link Element Representing Relationship LinksThe title attribute on an atom:link element describing a relationship link SHOULD be present and SHOULD be set to the name of the navigation property. The title attribute provides human-readable, possibly language-dependent, and not necessarily unique information about the link.Expanded Navigation PropertyAn expanded navigation property MUST be represented as a single metadata:inline child element of the atom:link element representing the HYPERLINK \l "_Navigation_Link_1" navigation link. The value of the metadata:inline element MUST be the correct representation of the related entity or collection of entities.It is valid to include the metadata:inline element in only a subset of the entries within a feed.If at most one entity can be related, the value is the representation of the related entity, or the metadata:inline element is empty if no entity is currently related.If a collection of entities can be related, it MUST be represented as an HYPERLINK \l "_Collection_of_Entities_1" atom:feed. An empty set of entities (one that contains no entity type instances) MUST be represented as an empty atom:feed. Each entity MUST be HYPERLINK \l "_Representing_an_Entity_1" represented as an atom:entry element or as HYPERLINK \l "_Resource_Reference" an entity reference.Example:<atom:link rel="" href="Categories(0)/Products" type="application/atom+xml;type=feed"title="Products"><metadata:inline> <atom:feed> ... </atom:feed></metadata:inline></atom:link>Deep InsertsWhen inserting a new entity with a POST request, related new entities MAY be specified using the same representation as for an HYPERLINK \l "_Expanded_Navigation_Property_1"expanded navigation property. Deep inserts are not allowed in update operations using PUT or PATCH requests.Example for inserting a new order with order details and a new customer:<entry> ... <link rel="" type="application/atom+xml;type=entry" title="Customer" href=" Orders(11643)/Customer"> <metadata:inline> <entry> ... <content type="application/xml"> <metadata:properties> <data:ID>ANEWONE</data:ID> ... </metadata:properties> </content> </entry> </metadata:inline> </link> <link rel="" type="application/atom+xml;type=feed" title="Details" href="Orders(11643)/Details"> <metadata:inline> <feed> <entry> ... <content type="application/xml"> <metadata:properties> <data:ProductID metadata:type="Edm.Int32">28</data:ProductID> ... </metadata:properties> </content> </entry> <entry> ... <content type="application/xml"> <metadata:properties> <data:ProductID metadata:type="Edm.Int32">39</data:ProductID> ... </metadata:properties> </content> </entry> ... </feed> </metadata:inline> </link> <content type="application/xml"> <metadata:properties> <data:OrderID metadata:type="Edm.Int32">11643</data:ID> <data:CustomerID>ANEWONE</data:CustomerID> <data:EmployeeID metadata:type="Edm.Int32">6</data:EmployeeID> ... </metadata:properties> </content></entry>Bind OperationsWhen inserting or updating an entity, relationships of navigation properties MAY be inserted or updated via bind operations. If at most one entity can be related, the bind operation MUST be represented as a navigation link whose href attribute MUST contain the HYPERLINK \l "_Element_atom:id" id of the entity to be related.For update operations a bind operation on a collection navigation property MUST be represented as a navigation link with an inlined collection of entity references. The referenced entities are added as additional related entities, and existing relationships are not updated or deleted.For insert operations collection navigation property bind operations and deep insert operations MAY be combined by inlining an atom:feed that contains atom:entry elements and metadata:ref elements.Example for assigning a product to an existing category with an update request: <atom:link rel="" href="(0)" type="application/atom+xml;type=entry" title="Category"/>Stream PropertyiesElement as atom:link ElementsAn entity may have one or more stream properties (for example, a photo property of an employee entity). Properties that represent streams have a type of “Edm.Stream”.OData uses the atom:link elements to represent a named stream propertyies of an entity.For example, a stream property named “Photo” could be represented through by an atom:link element as a child of the atom:entry element as follows:<atom:link rel="" type="image/jpeg" title="Photo" href="Categories(0)/Photo"/>A stream property named “Photo” could be edited through an atom:link element as a child of the atom:entry element as follows:<atom:link rel="" type="image/jpeg" title="Photo" href="Categories(0)/Photo"/>The attributes rel, href, type, metadata:etag, and title are to be used as described in the following subsections.The Attribute rel Attribute of a Link Representing a Stream PropertyThe rel attribute for an HYPERLINK \l "atomLink" atom:link element that can be used to retrieve a stream property value is MUST be present and MUST be made up of the string , followed by the name of the stream property on the entity. The rel attribute for an atom:link element that can be used to change a stream property value is made up of the string , followed by the name of the stream property on the entity.In both cases the full name must be used; the use of relative URLs in the rel attribute is not allowed.Attribute The href Attribute of a Link Representing a Stream PropertyThe href attribute of an HYPERLINK \l "atomLink" atom:link element describing an OData stream property MUST be present and MUST contains the URL that can be used to read, or write, the stream, according to the rel attribute. This URL may be relative or absolute.The title Attribute of a Link Representing a Stream PropertyThe title attribute on an HYPERLINK \l "atomLink" atom:link element describing an OData relationship provides human-readable, possibly language-dependent, and not necessarily unique information about the link. It has no implied semantics in OData.Attribute The type Attribute of a Link Representing a Stream PropertyThe type attribute on an HYPERLINK \l "atomLink" atom:link element describing an OData relationship specifies the meda-type of the stream property.Attribute The metadata:etag Attribute of a Link Representing a Stream PropertyThe metadata:etag attribute on an HYPERLINK \l "atomLink" atom:link element describing an OData relationship specifies an etag value that can be used in an if-match header to conditionally write to the stream property as described in HYPERLINK \l "ODataCore" [OData-Protocol].Attribute titleThe title attribute provides human-readable, possibly language-dependent, and not necessarily unique information about the link. It has no implied semantics in OData.Media EntityMedia entities (in AtomPub: media link entries, see REF RFC5023 \h [RFC5023]) are entities that describe and link to a media resource.<entry><id>(6)</id> ...<link rel="edit-media" title="Employee" href="Employees(6)/$value"/><content type="image/jpeg" src="Employees(6)/$value"/> <metadata:properties> <data:ID metadata:type="Edm.Int32">6</data:ID> ... </metadata:properties></entry>Element atom:link element for Updating Media Link EntriesA media entity HYPERLINK \l "MediaLinkEntries" Media Link Entry MAY contain an atom:link element with a rel attribute of "edit-media" to specify a URL that can be used to write to the BLOB associated with the entity. The attributes rel and href MUST be used as described in the following subsections.The Attribute rel attribute for writing to Media Link EntriesWithin an atom:entry representing a Media Link Entry, an atom:link element with aThe rel attribute MUST be present and MUST have the stringof “edit-media” as valueis used to identify a link that can be used to write to the BLOB associated with the entry.The Attribute href attribute for writing to Media Link EntriesAn atom:link element representing the link used to write to the BLOB associated with the entity MUST include anThe href MUST be present and its value MUST attribute to specify the URI that can be used to write the stream. This URI may be relative or absolute.Element atom:contentFor media entities the atom:content element MUST be empty. Properties of the media entity are represented by the HYPERLINK \l "metadataProperties" metadata:properties element as a sibling to, rather than a child of, the atom:content element.Attribute srcThe atom:content element MUST contain a src attribute and the value of the src attribute MUST be a URL that can be used to retrieve the content of the media resource. Attribute typeThe atom:content element MUST specify a type attribute that SHOULD contain the MIME type of the media resource.Individual PropertyPrimitive or Complex Scalar ValuesA valid OData payload may consist of a single primitive or complex value, or of a collection of these... For example, a request for the first name of a given customer may return the following payloads:<value xmlns="">CEO</value> or<metadata:value xmlns:metadata=="" metadata:null="true" /> Similarly, the following payload represents a full name:<metadata:value metadata:type="HumanResources.Address" xmlns:metadata="" xmlns=""> <FirstName>Julie</FirstName> <LastName>Swansworth</LastName></metadata:value>Single Scalar ValueFor example, a request for the first name of a given customer may return the following payloads:<value xmlns="">CEO</value> or<metadata:value xmlns:metadata=="" metadata:null="true" /> Similarly, the following payload represents a full name:<metadata:value metadata:type="HumanResources.Address" xmlns:metadata="" xmlns=""> <FirstName>Julie</FirstName> <LastName>Swansworth</LastName></metadata:value>The Element metadata:value ElementSingle scalar values are represented as a metadata:value root element that contains the representation of the scalar value. The attributes metadata:type and metadata:null MUST be used as described in the following subsections.Attribute metadata:metadataThe metadata:value element MUST have a metadata attribute, defined in the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata namespace, whose value is the metadata URL that describes the element. For more information on the metadata URL, see HYPERLINK \l "ODataCore" [OData-Protocol].Attribute metadata:metadata-etagThe metadata:value element MAY have a metadata:metadata-etag attribute to specify an ETag that can be used to determine the current version of the service's metadata document.For details on how ETags are used, see [ REF OData \h OData-Protocol].The Attribute metadata:type AttributeIf the type of the scalar value being specified is anything other than Edm.String the metadata:type attribute the HYPERLINK \l "_The_metadata:Annotation_Element" metadata:value element MUST be present and contain a metadata:type attribute to specify the appropriate namespace - or alias - qualified type of the annotation value.The Attribute metadata:null AttributeThe metadata:null attribute distinguishes null values from other empty content (such as an empty string). Null-values are represented as an empty metadata:value element with a metadata:null="true" attribute. Collections of Primitive or Complex Scalar Scalar ValuesCollections of Primitive or Complex Scalar Scalar ValuesA valid OData payload MAY consist of a collection of primitive or complex properties. For example, the following payload represents a collection of phone numbers.<metadata:value xmlns:metadata=""> <metadata:element>(203)555-1718</metadata:element> <metadata:element>(203)555-1719</metadata:element></metadata:value>Similarly, the following payload represents a collection of full names.<metadata:value xmlns:metadata="" xmlns=""> <metadata:element metadata:type="HumanResources.FullName"> <FirstName>Julie</FirstName> <LastName>Swansworth</LastName> </metadata:element> <metadata:element metadata:type="HumanResources.FullName"> <FirstName>Mark</FirstName> <LastName>Swansworth</LastName> </metadata:element></metadata:value>The Element metadata:value ElementA Collections of scalar values are is represented as a single metadata:value root element that contains a <metadata:element> child element for each member of the collection whose content is an individual primitive or complex value as defined above.The <metadata:value> element MUST NOT contain a metadata:null attribute. The attribute metadata:type MUST be used as described in the following subsection.The Attribute metadata:type AttributeThe attribute metadata:type MUST be present andFor collections of scalar values the HYPERLINK \l "_The_metadata:Annotation_Element" metadata:value element MUST contain a metadata:type attribute to specify the appropriate namespace- or alias-qualified collection type.For collections of complex scalar values this attribute specifies a collection type for the base type of the collection. Individual elements of a derived type MUST specify their derived types with a metadata:type attribute on the <metadata:element> element.Collections of EntitiesCollections of entities are represented in Atom as an Atom Feed.Collection of Entities as anElement atom:feed ElementCollections of entities are represented using an atom:feed Element, where each entity is represented as an atom:entry or metadata:ref.Attribute metadata:metadataThe atom:feed element, it MUST have a metadata attribute, defined in the HYPERLINK \l "_OData_Metadata_Namespace" OData Metadata namespace, whose value is the metadata URL that describes the feed. For more information on the metadata URL, see HYPERLINK \l "ODataCore" [OData-Protocol].Attribute metadata:metadata-etagThe metadata:metadata-etag attribute MAY appear in an atom:feed in order to specify an ETag that can be used to determine the current version of the service's metadata document.For details on how ETags are used, see [ REF OData \h OData-Protocol].Element The atom:id Element within an atom:feedOData does not add any conventions or semantics beyond REF RFC4287 \h [RFC4287] to tThe atom:id element defines a durable, opaque, globally unique identifier for the feeds. Its content must be an IRI as defined in REF RFC3987 \h [RFC3987]. The consumer of the feed must not assume this IRI can be de-referenced, nor assume any semantics from its structure.Count as aElement metadata:count ElementThe atom:feed element MAY contain a metadata:count element to specify the total count of rows in the result. This MAY be greater than the number of rows in the feed if server side paging has been applied, in which case the feed MUST include a next results link:<feed xmlns="" xmlns:metadata="" ><metadata:count>42</metadata:count>...</feed>Self-Links asElement atom:link ElementsAtom requires that feeds contain a “self link”. The atom:feed element MAY contain a next link to indicate the presence of additional entries that belong to the feed. The atom:feed element representing the final page of results may contain a delta link that can be used to fetch subsequent changes (deltas) to the result. All three cases are distinguished from another by the value of the rel attribute as described in the following subsection.A self link is represented as an atom:link with a rel="self" attribute and an href that can be used to retrieve the feed from which the current entries are taken. If the feed represents a set of related entities (addressed with a request URL ending in a to-many navigation property, or an inlined feed requested with $expand), the self link MUST identify the specific feed of related entities.Note that the actual set of entries contained within the atom:feed MAY be a subset of those retrieved using the self link, for example, if filtering has been applied.Additional Results as an Attribute atomrel:link element The atom:feed element MAY contain a next link to indicate the presence of additional entries that belong to the feed. Such a link is represented as an atom:link with a rel attribute of "next" and an href attribute containing a URL that can be used to retrieve the next set of results. A self link is represented as an atom:link with a rel="self" attribute and an href that can be used to retrieve the feed from which the current entries are taken. If the feed represents a set of related entities (addressed with a request URL ending in a to-many navigation property, or an inlined feed requested with $expand), the self link MUST identify the specific feed of related entities.A next link is represented as an atom:link with a rel attribute of "next" and an href attribute containing a URL that can be used to retrieve the next set of results. For example, the following atom:link element within an atom:feed element indicates that additional results can be returned by following the specified href: <atom:link rel="next" href="?$skiptoken=1237"/>The contents of the href SHOULD be treated as an opaque URL that can be used to fetch the next set of results.Delta Link as an atom:link element The atom:feed element representing the final page of results may contain a delta link that can be used to fetch subsequent changes (deltas) to the result. Such aA delta link is represented as an atom:link element with a rel attribute of " " and an href attribute containing a URL that can be used to retrieve subsequent changes. For example, the following atom:link element within an atom:feed element indicates that changes may be retrieved by following the specified href: <atom:link rel=" " href="?$deltatoken=1234"/>The contents of the href should be treated as an opaque URL that can be used to fetch subsequent changes.The delta link MUST only appear on the last page of results. A page of results MUST NOT have both a delta link and a next link.Resource ReferencesA resource reference is a reference to an entity or a property of an entity. A Rresource references referring to an entity are is called an entity references.An entity reference MAY take the place of an entity instance in an AtomTOM payload, based on the client request.For example, the following shows an entity reference to order 10643:<metadata:ref ref="(10643)" />Resource References as Element a metadata:ref elementA reference to an entity or one of its properties is represented in AtomTOM using a metadata:ref element. The metadata:ref element attribute MUST contain be present and used as described in the following subsection.a ref attribute to indicate the referenced entity. Attribute Entity Id as a ref AttributeThe HYPERLINK \l "_Entity_References_as" metadata:ref element MUST contain a The ref attribute MUST be present. For entities the ref attribute MUST be the atom:id of the referenced entity, for entity properties it must MUST be the atom:id of the entity followed by the resource path segment identifying the property.Delta ResponseResponses from a delta request are returned as an atom:feed. The feed MUST contain all added, changed, or deleted entities, as well as added or deleted links between entities, and MAY contain additional, unchanged entities.All added, changed, or deleted entities and links, including related entities, are returned as direct children of the atom:feed element.. The atom:id element for related entities MUST include the HYPERLINK \l "_The_metadata:set_Attribute" metadata:set attribute to specify the set of the related entity.Entities that are not part of the set specified by the value of metadata:metadata MUST include the HYPERLINK \l "_The_metadata:set_Attribute" metadata:setmetadata attribute in the atom:id element to specify the set of the related entity.If the delta response contains a partial list of changes, it MUST include a next link for the client to retrieve the next set of changes.Changes are generally ordered by the service according to when the last change occurred to an entity, but MUST be ordered such that applying all changes across all pages, in order, to the initial set yields a consistent result.The last page of a delta response SHOULD contain a delta link for retrieving subsequent changes once the current set of changes has been applied to the initial set.If the response from the delta link contains an inlinecount, the returned count is the count of added, changed, or deleted entities. $count and $inlinecount returned from a delta link do not include added or deleted links.The following example shows the following ordered changes:ContactName for customer 'BOTTM' was changed to "Susan Halvenstern"Order 10643 was removed from customer 'ALFKI'Order 10645 was added to customer 'BOTTM'The shipping information for order 10643 was updatedCustomer 'ANTON' was deleted <?xml version="1.0" encoding="utf-8" standalone="yes" ?><feed xml:base="" xmlns:data="" xmlns:metadata="" xmlns="" xmlns:at="" > <title type="text">Customers</title> <id>; <updated>2011-02-16T01:00:25Z</updated> <link rel="self" title="Customers" href="Customers" /> <entry> <id>('BOTTM')</id> <title type="text" /> <updated>2011-02-16T01:00:25Z</updated> <author><name /></author> <link rel="edit" title="Customer" href="Customers('BOTTM')"/> <category term="NorthwindModel.Customer" scheme=""/> <content type="application/xml"> <metadata:properties> <d:ContactName>Susan Halvenstern</d:ContactName> </metadata:properties> </content> </entry> <metadata:deleted-link-entry source="('ALFKI')" relationship="Orders" target="(10643)" when="2011-02-16T01:00:25Z"/> <metadata:link-entry source="('BOTTM')" relationship="Orders" target="(10645)" when="2011-02-16T01:00:25Z"/> <entry metadata:metadata="Orders/@Element"> <id metadata:set="$metadata/Orders">('10643')</id> <title type="text" /> <updated>2011-02-16T01:00:25Z</updated> <author><name/></author> <link rel="edit" title="Order" href="Orders('10643')" /> <category term="NorthwindModel.Order" scheme="" /> <content type="application/xml"> <metadata:properties> <d:ShipName>Bottom-Dollar Markets</d:ShipName> <d:ShipAddress>23 Tsawassen Blvd.</d:ShipAddress> <d:ShipCity>Tsawassen</d:ShipCity> <d:ShipRegion>BC</d:ShipRegion> <d:ShipPostalCode>T2F 8M4</d:ShipPostalCode> <d:ShipCountry>Canada</d:ShipCountry> </metadata:properties> </content> </entry> <at:deleted-entry ref="('ANTON')" when="2011-02-16T01:00:30Z" metadata:reason="deleted"/> <link rel="" href="?$expand=orders&$deltatoken=8015"/></feed>Changed/Added/Changed Entityies as atom:entry ElementsAdded or changed entities within a delta response are represented as HYPERLINK \l "_The_atom:entry_Element" atom:-entry elements.Added or changed entities MUST NOT include HYPERLINK \l "_Inline_Content_within" inline content.Added entities MUST include all selected properties and MAY include additional, unselected properties. Collection-valued properties are treated as atomic values; any collection-valued properties returned from a delta request MUST contain all current values for that collection.Added entities MUST include HYPERLINK \l "_Relationships_as_atom:link" navigation links.Changed entities MUST include all selected properties that have changed and MAY include additional properties.The atom:id element for related entities MUST include the HYPERLINK \l "_The_metadata:set_Attribute" metadata:set attribute to specify the set of the related entity.Entities whose set cannot be determined from the metadata URL of the feed MUST include the HYPERLINK \l "_Attribute_metadata:metadata" metadata:metadata e metadata:set attribute in the atom:entry element to specify the setmetadata URL of the entity (in this metadata URL specifies the set, the entity belongs to). This metadata URL MAY be absolute or relative to the metadata URL of the feed. Added entities MUST include HYPERLINK \l "_Relationships_as_atom:link" navigation links. Added or changed entities MUST NOT include HYPERLINK \l "_Inline_Content_within" inline content.Added entities MUST include HYPERLINK \l "_Relationships_as_atom:link" navigation links. Added or changed entities MUST NOT include HYPERLINK \l "_Inline_Content_within" inline content.Entities that are not part of the set specified by the value of metadata:metadata attribute MUST include the HYPERLINK \l "_The_metadata:set_Attribute" metadata:set attribute in the atom:id element to specify the set of the related entity.Added entities MUST include HYPERLINK \l "_Relationships_as_atom:link" navigation links. Added or changed entities MUST NOT include HYPERLINK \l "_Inline_Content_within" inline content.Added entities MUST include HYPERLINK \l "_Relationships_as_atom:link" navigation links. Added or changed entities MUST NOT include HYPERLINK \l "_Inline_Content_within" inline content.Deleted EentityElement atom-tombstone:deleted-entry ies as atom-tombstone:deleted-entry ElementsA dDeleted entitiyes within a delta response are is represented as an atom-tombstone:deleted-entry elements, defined within the Atom Tombstone namespace, as defined in [RFC6721].The atom-tombstone:deleted-entry MUST contain aThe ref and a when attribute MUST be present, the metadata: specifying the HYPERLINK \l "_The_atom:id_Element" atom:id of the deleted entry, as well as the time the entity was deleted and an optional reason attribute for the deletionMAY be present. All attributes have to be used as described in the following subsection..Attribute Entity Id as a ref attributeAs defined in [RFC6721], the HYPERLINK \l "_Deleted_entities_as" atom-tombstone:deleted-entry MUST contain a ref attribute MUST be present . The value of the ref attribute MUST specifying the atom:id of the deleted entry.Attribute Deleted Time as a when AttributeAs defined in [RFC6721], the when attribute MUST be present The value of the when attribute HYPERLINK \l "_Deleted_entities_as" atom-tombstone:deleted-entry MUST contain a MUST when attribute specifying the time at which the entity was deleted. The attribute value may be the empty string if the service is unable to determine the time at which the deletion occurred.Attribute Deleted Reason as a metadata:reason AttributeThe HYPERLINK \l "_Deleted_entities_as" atom-tombstone:deleted-entry MAY contain a metadata:reason attribute MAY be present. The value of the metadata:reason attribute MUST specifying the string value "deleted", if the entity was deleted (destroyed), or "changed" if the entity was removed from membership in the result (i.e., due to a data change).LinkElement metadata:link-entry s as metadata:link-entry ElementsA Links within a delta response are is represented as by a metadata:link-entry elements.A Delta Rresponses MUST contain a metadata:link-entry for each added link that corresponds to a $expand path in the initial request.The metadata:link-entry MUST contain aThe source, HYPERLINK \l "_Navigation_Property_as" relationship, and HYPERLINK \l "_Entity_Id_as_1" target attribute MUST be present, the when attribute MAY be present. All attributes have to be used as described in the following subsection.specifying the HYPERLINK \l "_The_atom:id_Element" atom:id of the entity from which the link exists, a HYPERLINK \l "_Navigation_Property_as" relationship attribute specifying the navigation property for which the link was specified, and a HYPERLINK \l "_Entity_Id_as_1" target attribute containing the HYPERLINK \l "_The_atom:id_Element" atom:id of the related resource. The metadata:link-entry MAY include an optional when attribute specifying when the link was created.Attribute Entity Id as a source AttributeThe source attributeThe HYPERLINK \l "_Links_as_metadata:linkEntry" metadata:link-entry MUST be present and specify contain a source attribute specifying the atom:id of the entity from which the link existsoriginates.Attribute Navigation Property as a relationship AttributeThe HYPERLINK \l "_Links_as_metadata:linkEntry" metadata:link-entry MUST contain a relationship MUST be present and specify the attribute specifying the name of the navigation property on the source entity for which the link exists.Attribute Related Entity as a target AttributeThe HYPERLINK \l "_Links_as_metadata:linkEntry" metadata:link-entry MUST contain a target attribute MUST be present and specify specifying the atom:id of the related entity.Attribute Creation Time as a when AttributeThe HYPERLINK \l "_Links_as_metadata:linkEntry" metadata:link-entry MAY contain a when attribute MAY be present and specify specifying the time at which the link was created. The attribute MAY be the empty the empty string if the service is unable to determine the time at which the creation occurred.Deleted LinkElement metadata:deleted-link-entry s as metadata:deleted-link-entry ElementsA Deleted lLinks within a delta response are is represented as a metadata:deleted-link-entry elements.Delta responses MUST contain a metadata:deleted-link-entry for each deleted link that corresponds to a $expand path in the initial request, unless either of the following is true:The source or target entity has been deleted The maximum cardinality of the related entity is one and there is a subsequent metadata:link-entry that specifies the same source and relationship. The service MAY, but is not required to, return a metadata:deleted-link-entry where one of the entitites has also been deleted, or where there is a subsequent metadata:link-entry with the same source and relationship and a maximum cardinality of one for the related end. The metadata:deleted-link-entry MUST contain a HYPERLINK \l "_Entity_Id_as_2" source attribute specifying the HYPERLINK \l "_The_atom:id_Element" atom:id of the entity from which the link was deleted, a HYPERLINK \l "_Navigation_Property_as_1" relationship attribute specifying the navigation property for which the link was specified, and a HYPERLINK \l "_Related_Entity_as" target attribute containing the HYPERLINK \l "_The_atom:id_Element" atom:id of the related resource. The metadata:deleted-link-entry MAY include an optional HYPERLINK \l "_Creation_Time_as" when attribute specifying when the link was deleted.The HYPERLINK \l "_Entity_Id_as_2" source, HYPERLINK \l "_Navigation_Property_as_1" relationship and HYPERLINK \l "_Related_Entity_as" target attribute MUST be present, the when attribute MAY be present. All attributes have to be used as described in the following subsection.Attribute Entity Id as a source AttributeThe HYPERLINK \l "_Deleted_Links_as" metadata:deleted-link-entry MUST contain a source attribute specifying the HYPERLINK \l "_The_atom:id_Element" atom:id of the entity from which the link exists.The source attribute MUST be present and specify the HYPERLINK \l "_The_atom:id_Element" atom:id of the entity from which the link originates.Attribute Navigation Property as a relationship AttributeThe target attribute MUST be present and specify the HYPERLINK \l "_The_atom:id_Element" atom:id of the related entity.The HYPERLINK \l "_Deleted_Links_as" metadata:deleted-link-entry MUST contain a relationship attribute specifying the name of the navigation property on the HYPERLINK \l "_Entity_Id_as" source entity for which the link exists.Attribute Related Entity as a target AttributeThe target attribute MUST be present and specify the HYPERLINK \l "_The_atom:id_Element" atom:id of the related entity.The HYPERLINK \l "_Deleted_Links_as" metadata:deleted-link-entry MUST contain a target attribute specifying the HYPERLINK \l "_The_atom:id_Element" atom:id of the related entity.Attribute Deleted Time as a when AttributeThe when attribute MAY be present and specify the time at which the link was created. The attribute MAY be the empty string if the service is unable to determine the time at which the creation occurredThe HYPERLINK \l "_Deleted_Links_as" metadata:deleted-link-entry MAY contain a when attribute specifying the time at which the link was created. The attribute MAY be empty the empty string if the service is unable to determine the time at which the creation occurred.FunctionsZero or more functions MAY be associated bindable towith a feed or entry.The functions associated with a particular feed or entry MAY be described using metadata:function elements(s) that are direct children of the feed or entry on to which the actionfunctions(s) existcan be bound.For example, the following element describes a “GetTopProducts” functionExample:<metadata:function metadata="#DemoService.GetTopProducts" target="(0)/GetTopProducts()" title="BestGetTop-Selling PProducts"/>Functions asElement a metadata:function ElementEach fFunctions are is represented as a metadata:function elements that appear asMUST be a direct children of the atom:feed or atom:entry element representing the collection or entity on which the function(s) exists.The Attribute metadata Attribute for a FunctionA metadata:function element MUST have aThe metadata attribute MUST be present which and specifyies the namespace- or alias-container qualified name of the function, element describing the function, preceded by a “#”. For example, “#MyEntityContainer.MyFunctionName”.The A named function may have multiple overloads (multiple function elements) within the containerwith different parameters. If the URL in the HYPERLINK \l "_Attribute_target" target attribute of the metadata:function element cannot be used to invoke all overloads for the function, then it must MUST further be distinguished by appending a comma- separated ordered list of parameter type names, enclosed in parenthesis (). For example, “#MyEntityContainerSchema.MyFunctionName(EdmSchema.IntegerProduct, Edm.String)”.Example:<metadata:functionmetadata="#Products(DemoModel.Category,Edm.String)"target="(0)/TopProducts" title="Best-selling products"/>If the metadata cannot be retrieved by appending "$metadata" to the service root, then this name MUST additionally be prefixed by a URL that can be used to retrieve the metadata document containing the function element that describes the function.The Attribute target Attribute for a FunctionA metadata:function element MUST have aThe target attribute MUST be present and specifythat specifies the URL to GET from in order to invoke the function. The first parameter of the function MUST be a binding parameter that is bound to the feed or entity on which the function is specified, and MUST NOT be provided as a separate parameter by the client when invoking the function.The Attribute title Attribute for a FunctionThe metadata:function element MUST have aThe title attribute MUST be present andthat contains a human-readable, possibly language-dependent, and not necessarily unique name for the function, commonly used by clients to describe the function to a user.ActionsZero or more actions may be associated bindable towith a feed or entry.The actions associated with a particular feed or entry MAY be described using metadata:action element(s) that are direct children of the feed or entry on to which the action(s) existcan be bound.For example, the following element describes an “Order” action:Example:<metadata:action metadata="#DemoService.OrderProduct" target="(1)/OrderProduct" title="Order"/>Actions as aElement metadata:action ElementEach aAction iss are represented as a metadata:action elements that appear asMUST be a direct children of the atom:feed or atom:entry element representing the feed or entity on which the action(s) exists.The Attribute metadata Attribute for an ActionA metadata:action element MUST have aThe metadata attribute MUST be present and which specifyies the namespace- or alias-qualified name of the function action element describing the action, preceded by a “#”. For example, “#MyModel.MyFunctionName”. This function element name combined with the binding parameter type MUST be unique within the entity container. Attribute targetIf the metadata cannot be retrieved by appending "$metadata" to the service root, then this name MUST additionally be prefixed by a URL that can be used to retrieve the metadata document containing the function elenent that describes the action.A metadata:action element MUST have aThe target attribute MUST be present and that specifyies the URL to POST to in order to invoke the action. The first parameter of the action MUST be a binding parameter that is bound to the feed or entity on which the action is specified, and MUST NOT be provided as a separate parameter by the client when invoking the action.The Attribute title Attribute for an ActionThe metadata:action element MUST have a title attribute MUST be present and that concontains a human-readable, possibly language-dependent, and not necessarily unique name for the action, commonly used by clients to describe the action to a user.Action ParametersAction parameter values in the request body MUST be encoded as an individual complex scalar value with the name parameters and no metadata:type attribute for the parameters element. Each non-binding parameter value specified MUST be encoded as an individual primitive or complex scalar value. The name of the scalar value is the name of the parameter. The value is the parameter value in the XML representation appropriate for its type. Any parameter values not specified in the request body MUST be assumed to have the default value specified in the service metadata, see REF ODataCSDL \h [OData-CSDL]be null. Example: <parameters> <param1>42</param1> <param2 metadata:type="Model.Address"> <Street>One Microsoft Way</Street> <Zip>98052</Zip> </param2> <param3> <element>1</element> <element>42</element> <element>99</element> </param3> <param4 metadata:null="true"/> <!--<param5/> not specified, has default value from $metadata--> <parameters>Instance AnnotationsAnnotations MAY be applied to an instance of a feed, entity, property, complex scalar value, function, action, or error within an Atom payload.Element The metadata:annotation ElementAn instance annotation in Atom is represented as an XML element with the name Annotation in the metadata namespace.The value of the annotation is specified according to the Annotation Value, described below.Attribute The target AttributeThe target attribute MAY be used to specify the annotation target. If the target attribute is not specified the target of the annotation is the element represented by the direct parent of the metadata:annotation element.Attribute The term AttributeThe metadata:annotation element MUST have a term attribute that specifies the namespace- or alias-fully qualified name of the term being applied.Attribute The metadata:type AttributeIf the type of the annotation value being specified is anything other than Edm.String the metadata:annotation element MUST contain a metadata:type attribute to specify the appropriate type of the annotation value.Attribute The metadata:null AttributeNull-valued annotations are represented as empty metadata:annotation elements with the metadata:null="true" attribute. The metadata:null attribute distinguishes null values from other empty content (such as an empty string). The absence of the metadata:null attribute is equivalent to specifying metadata:null="false".Annotation ValuesAn instance annotation value may be specified as a primitive value, structured value, or collection value.Primitive ValuesWhen specified in the content of an annotation element representing a primitive value, the content MUST be formatted as per Primitive Types in Atom. If the type of the annotation value is anything other than Edm.String, then the annotation element MUST contain the metadata:type attribute specifying the appropriate primitive type.For example; the following annotates the "Phone" property with a string value of "Home" for the “PhoneNumberType” annotation term.<metadata:properties> <data:CustomerID>ALFKI</data:CustomerID> <data:ContactName> Alfreds Futterkiste </data:ContactName> <data:Phone>030-0074321</data:Phone> <metadata:annotation term="com.contoso.PersonalInfo.PhoneNumberType" target="Phone">Home</metadata:annotation></metadata:properties>Collection ValuesThe content of an element representing a collection-valued annotation MUST be the individual elements of that collection formatted as direct child elements of the metadata:annotation element as described in Collections of Primitive or Complex Scalar Values. For collection-valued annotations, the annotation element MUST contain the metadata:type attribute specifying the appropriate collection type.For example, the following annotates the customer instance with two phone numbers.<entry><id>Customers(ALFKI)</id><content> <metadata:properties> <data:CustomerID>ALFKI</data:CustomerID> <data:ContactName>Alfreds Futterkiste</data:ContactName> <data:Phone>030-0074321</data:Phone> </metadata:properties></content> <metadata:annotation term="com.contoso.PersonalInfo.PhoneNumbers" type="Collection(Edm.String)"> <element>(203)555-1718</element> <element>(203)555-1719</element> </metadata:annotation></entry>Structure AnnotationsThe content of an element representing a structured annotation MUST be a single child element for each property of the annotation type being specified, formatted as per properties within an entity type. For structural-valued annotations, the annotation element MUST contain the metadata:type attribute specifying the appropriate structural type.For example; the following specifies the StreetAddress, City, Region, Country and PostalCode properties of an Address annotation applied to a customer entity:<entry><id>Customers(ALFKI)</id><content> <metadata:properties> <data:CustomerID>ALFKI</data:CustomerID> <data:ContactName>Alfreds Futterkiste</data:ContactName> <data:Phone>030-0074321</data:Phone> </metadata:properties> </content> <metadata:annotation term="com.contoso.Locations.Address" type="Locations.Address"> <data:StreetAddress>Obere Str. 578</data:StreetAddress> <data:City>Toronto</data:City> <data:Region metadata:null="true"/> <data:PostalCode>12209</data:PostalCode> <data:Country>Germany</data:Country> </metadata:annotation><entry>Instance Annotation TargetsInstance annotations may target model elements represented by a feed, entity, HYPERLINK \l "_Entity_Content_within" complex scalar value, property, function, action, or error element in an Atom payload.Annotating a FeedWhen annotating a feed, annotation elements MUST be direct children of the atom:feed element, and they MUST appear in a group at the beginning or of the feed or (another) group at the end of the feed, depending on whether they are needed beforehand to understand the feed content, or can only be computed after serializing the feed content.Annotating an EntryWhen annotating an entity, the annotation element MUST be a direct child of the atom:entry element representing the entity.Annotating an Complex TypeWhen annotating an instance of a complex type, the annotation element MUST be a direct child of the HYPERLINK \l "_Entity_Instances" metadata:value element representing the complex-typed value.Annotating a PropertyWhen annotating a property, the annotation element MUST be a direct child of the metadata:properties element, or a direct child of the element representing a complex type in the case of annotating the property of a complex type. The value of the target attribute MUST specify the name of the property being annotated. The annotation elements MUST immediately precede the target property element.Instance annotations are not supported when serializing single EdmSimpleType primitive properties in XML as described in Individual Primitive or Complex Scalar Values.Annotating a Navigation PropertyWhen annotating a navigation property, named stream, or other element represented by an atom:link element, the annotation element must be a direct child of the atom:link element.Annotating a Function or ActionWhen annotating a function or action, the annotation element must be a direct child of the element representing the function or action.Annotating an ErrorWhen annotating an error, the metadata:annotation element MUST be a direct child of the metadata:error element. The annotation element MAY have a target attribute value of "code", "message", or "innererror". If the target attribute is not specified, then the annotation is applied to the error itself. The annotation elements MUST follow the other child elements of the error element.Error Reponses as XMLIn the case of an error being generated in response to a request specifying an Accept header of application/xml or application/atom+xml, or that does not specify an Accept header, the service MUST respond with an error formatted as XML.When formatting error responses as XML, servers SHOULD include a Content-Type response header with the value "application/xml".Element The metadata:error ElementErrors formatted as XML MUST have a root metadata:error element. The metadata:error element MUST have at least two child elements: metadata:code and metadata:message.In addition, errors may be annotated using custom annotations.For example: <error xmlns=""> <code>501BDRQST</code> <message xml:lang="en-US">Functionality not supported.Bad Request - Error in query syntax.</message> <details> <detail> <code>301</code> <message>$search query option not supported.</message> <target>$search</target> </detail> </details></error>Element The metadata:code ElementThe metadata:error element MUST contain a one metadata:code element specifying a service-defined string. This value MAY be used to provide a more specific substatus to the returned HTTP response code.Element The metadata:message ElementThe metadata:error element MUST contain a metadata:message element specifying a human readable, language-dependent message describing the error. The Content-Language header MUST contain the language code from REF rfc5646 \h [RFC5646] corresponding to the language in which the value for message is written.Element metadata:target The metadata:error element MAY contain a metadata:detailtarget element to specify the target of the error (for example, the name of the property in error). Element The metadata:details ElementThe metadata:error element MAY contain a metadata:details element containing one or more metadata:detail elements specifying detail about the error.Element The metadata:detail ElementThe metadata:detail element specifies information about an individual error detail.Element metadata:code The metadata:detail element MUST contain one metadata:code element specifying a service-defined string. This value MAY be used to provide a more specific substatus to the returned HTTP response code.Element metadata:message The metadata:detail element MUST contain a metadata:message element specifying a human readable, language-dependent message describing the error.Element metadata:target The metadata:detail element MAY contain a metadata:detail element to specify the target of the error. Element The metadata:innererror Element The metadata:error element MAY contain a metadata:innererror element containing service specific debugging information that might assist a service implementer in determining the cause of an error.The metadata:innererror element SHOULD only be used in development environments in order to guard against potential security concerns around information disclosure.ExtensibilityImplementations MAY add custom content anywhere allowed by REF RFC4287 \h \* MERGEFORMAT [RFC4287], Section 6, “Extending Atom”, and REF RFC5023 \h [RFC5023], Section 6.2 “Document Extensibility”. However, custom elements and attributes MUST NOT be defined in the OData Data Namespace nor the OData Metadata Namespace, and SHOULD not be required to be understood by the receiving party in order to correctly interpret the rest of the payload as the receiving party MUST ignore unknown foreign markup according to REF RFC4287 \h \* MERGEFORMAT [RFC4287]..ConformanceWhile an individual service will expose a model and behavior that likely uses only a subset of what is defined in [ REF ODataCore \h OData-Protocol] and REF ODataCSDL \h [OData-CSDL], conforming services MUST follow all rules of this specification for the resource types and methods they expose.Conforming clients MUST be prepared to consume a service that uses any or all of the constructs defined in this specification, including custom annotations defined by the service, and SHOULD ignore any constructs not defined in this version of the specification.In order to conform to the OData ATOM format, a service:MUST return well-formed ATOM payloads with the following exceptions:The next link MAY be returned at the end of the payloadThe delta link MAY be returned at the end of the payloadMUST follow the syntax defined in this specification:Entities MUST BE returned as atom entry elementsProperties MUST BE returned as elements whose name MUST correspond to the name of the property defined within the odata data namespace. Such of elements MUST BE returned as direct children of an element named "properties" defined within the odata metadata namespace.For non-media entities the properties element MUST BE returned as a child of the atom content element.For media entities, the properties element MUST BE returned as a peer to the atom content element. Entries MUST contain an atom category element with a scheme attribute value of "" and a term attribute value specifying the namespace qualified name of the type of the entity.Relationships MUST BE returned as link elements with a rel value equal to the name of the navigation property prepended with "" and an href attribute whose value is the URL for retrieving the related entity(ies). MUST include a next link in the feed for partial resultsMUST NOT violate any other aspects of the OData ATOM specification The last numbered section in the specification must be the Conformance section. Conformance Statements/Clauses go here. [Remove # marker]AcknowledgmentsThe following individuals were members of the OASIS OData Technical Committee during the creation of this specification and their contributions are gratefully acknowledged:Howard Abrams (CA Technologies)Ken Baclawski (Northeastern University)Jay Balunas (Red Hat)Mark Biamonte (Progress Software)Matthew Borges (SAP AG)Edmond Bourne (BlackBerry)Joseph Boyle (Planetwork, Inc.)Peter Brown (Individual)Antonio Campanile (Bank of America)Pablo Castro (Microsoft)Axel Conrad (BlackBerry)Robin Cover (OASIS)Erik de Voogd (SDL)Diane Downie (Citrix Systems)Stefan Drees (Individual)Patrick Durusau (Individual)Andrew Eisenberg (IBM)Chet Ensign (OASIS)Davina Erasmus (SDL)Colleen Evans (Microsoft)Senaka Fernando (WSO2)Brent Gross (IBM)Zhun Guo (Individual)Anila Kumar GVN (CA Technologies)Ralf Handl (SAP AG)Barbara Hartel (SAP AG)Hubert? Heijkers (IBM)Jens Hüsken (SAP AG)Evan Ireland (SAP AG)Gershon Janssen (Individual)Ram Jeyaraman (Microsoft)Ted Jones (Red Hat)Diane Jordan (IBM)Stephan Klevenz (SAP AG)Gerald Krause (SAP AG)Nuno Linhares (SDL)Paul Lipton (CA Technologies)Susan Malaika (IBM)Ramanjaneyulu Malisetti (CA Technologies)Neil McEvoy (iFOSSF – International Free and Open Source Solutions Foundation)Stan Mitranic (CA Technologies)Dale Moberg (Axway Software)Graham Moore (BrightstarDB Ltd.)Farrukh Najmi (Individual)Shishir Pardikar (Citrix Systems)Sanjay Patil (SAP AG)Nuccio Piscopo (iFOSSF – International Free and Open Source Solutions Foundation)Michael Pizzo (Microsoft)Robert Richards (Mashery)Sumedha Rubasinghe (WSO2)James Snell (IBM)Jeffrey Turpin (Axway Software)John Willson (Individual)John Wilmes (Individual)Christopher Woodruff (Perficient, Inc.)Martin Zurmuehl (SAP AG)The following individuals have participated in the creation of this specification and are gratefully acknowledged:Participants: MACROBUTTON [Participant Name, Affiliation | Individual Member][Participant Name, Affiliation | Individual Member]Non-Normative TexttextSubsidiary sectiontextSub-subsidiary sectiontextRevision HistoryRevisionDateEditorChanges MadeWorking Draft 012012-08-22Michael PizzoTranslated Contribution to OASIS format/templateCommittee Specification Draft 012013-04-2601Martin ZurmuehlRalf HandlMichael PizzoExpanded error informationAdded enumerationsFleshed out descriptions and examples and addressed numerous editorial and technical issues processed through the TCAdded Conformance section ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download