-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_WD01
-
Fix Version/s: V4.0_WD01
-
Component/s: ATOM Format
-
Labels:None
-
Environment:
[Proposed]
-
Proposal:
-
Resolution:
Currently, the example in Section 10 of [ATOM] implies that when selecting a single property (i.e., ~Customers('ALFKI')/FirstName), the payload would contain the name of the property in the d: namespace:
<Title xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">CEO<Title>
This implies that what is represented is a property with a given name, which is not the case; what should be represented is the value of the property, which is independent of the property itself (and can thus be used, for example, in passing as a parameter to an action). This is also inconsistent with how a function that returns a single property is represented, and is inconsistent with the JSON format (which represents this as a name/value pair with the name "value").
We should specify that an individual property is serialized in ATOM as an element named "value" in the odata metadata namespace.
Field | Original Value | New Value |
---|---|---|
Proposal | Specify in Section 10 of [ATOM] that an individual property is serialized as an element named "value" in the odata metadata namespace (that may contain metadata:type and metadata:null attributes, following the same rules as the d:<propertyname> element (which should be updated in 5.1.11.1 to include the metadata:null attribute) and correct examples in Section 10 and 11 accordingly. |
Specify in Section 10 of [ATOM] that an individual property is serialized as an element named "value" in the odata metadata namespace (that may contain metadata:type and metadata:null attributes, following the same rules as the d:<propertyname> element (which should be updated in 5.1.11.1 to include the metadata:null attribute) and correct examples in Section 10 and 11 accordingly. Accepted: https://www.oasis-open.org/committees/download.php/48346/odata-meeting-26_on-20130221-minutes.html#odata-254 |
Status | New [ 10000 ] | Open [ 1 ] |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Resolved [ 5 ] |
Assignee | Ralf Handl [ ralfhandl ] |
Resolution | https://www.oasis-open.org/committees/download.php/48383/odata-atom-format-v4.0-wd01-2013-02-26-RH.doc | |
Status | Resolved [ 5 ] | Applied [ 10002 ] |
Status | Applied [ 10002 ] | Resolved [ 5 ] |
Assignee | Ralf Handl [ ralfhandl ] |
Assignee | Ralf Handl [ ralfhandl ] |
Assignee | Ralf Handl [ ralfhandl ] | Ralf Handl [ handl ] |
Using metadata:type and metadata:null attributes within an metadata:value element feels odd, and we already use a local attribute "type" for the metadata:annotation element, so I defined the metadata:value element with local attributes "type" and "null":
<!-- payload format for property value responses -->
<xs:element name="value">
<xs:complexType mixed="true">
<xs:sequence>
<xs:any namespace="http://docs.oasis-open.org/odata/ns/data" processContents="lax" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="type" type="edm:TPropertyType" />
<xs:attribute name="null" type="xs:boolean" />
</xs:complexType>
</xs:element>
Looking at how collections of primitive or complex scalar values are now represented, it feels extremely odd that the "element" element is "defined" in the (probably forever) schema-less "data" namespace instead of also being defined in the metadata namespace like its siblings metadata:annotation and metadata:value.