If a CANopen device is said to be CANopen compliant (for example, compliant to DS 301), is the criteria for saying it to be compliant only based on the Mandatory Object Dictionary Entries supported or are there any other criteria we have to take care of?
You must support the mandatory object entries and also the functionality behind them. There are many CiA specifications that cover different aspects of CANopen. To say you meet the mandatory objects of 301 is fine - you comply to 301. But what about 302 - Addtional application layer functions, 303 - Connector and pin assignment, 305 - LSS? The list goes on.
It really depends on what you are doing with CAN, who your target market is and what your customers require. Dont forget the "Device Profiles", which may conflict with the standards also.
See here: http://www.can-cia.org/index.php?id=85
All the criteria are in the specification from the physical to the object layers. Other layers in the OSI model are mandatory to be compliant.
Unless stated in the specification as "shall be", "may be", "user options", etc., it is mandatory. Active verbs or verbs, like "is", "must", or "will", are all mandatory.