OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: OData JSON Format Version 1.0, RFC 2119, and a sample question on MAY usage.


Eventually OASIS TC specifications need a conformance section, and by using RFC 2119 conventions, the task for writers/readers in finding conformance-related items can be guided by searching for the MUSTS/MUST-NOTs, and checking to make sure that the SHOULDs and MAYs should be upgraded to a MUST or omitted for interop reasons.

 

MAY is always a tricky because this ‘ word, or the adjective "OPTIONAL", means that an item is

   truly optional.  One vendor may choose to include the item because a

   particular marketplace requires it or because the vendor feels that

   it enhances the product while another vendor may omit the same item.

   An implementation which does not include a particular option MUST be

   prepared to interoperate with another implementation which does

   include the option, though perhaps with reduced functionality. In the

   same vein an implementation which does include a particular option

   MUST be prepared to interoperate with another implementation which

   does not include the option (except, of course, for the feature the

   option provides.)

 

 

So in Section 3.1 it is said that

 

An entity in a payload MAY be a complete entity, a projected entity (see [OData-Core, section 10.2.3.2 The $select System Query Option]), or a partial entity update (see [OData-Core, section 10.3.1.2. Differential Update]).

 

I suspect that the RFC 2119 technical specification meaning is not really intended here. If it is intended, an explanation of whether each of these are OPTIONAL, or whether all are OPTIONAL, would be needed at least. If the intent is to say that every payload is one or the other of the subtypes, then actually a “MUST either” could replace the “MAY”.

 

Anyway, I have not made it all the way through the JSON draft yet, but there are other problematic MAYs beyond the one mentioned above. Given 2119 conventions and an interest in not getting fouled up in  interop “gotchas,” could the editors check whether the MAYs are really doing what they intend? It is often safer to even avoid lower-case “may” when possible.  




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]