Windows Azure Tables Breaking Changes (November 2013)

In preparation for adding JSON support to Windows Azure Tables, we are pushing an update that introduces a few breaking changes for Windows Azure Tables. We strive hard to preserve backward compatibility and these changes were introduced due to dependencies we have on WCF Data Services.

There are some changes in the WCF Data Services libraries which should not break XML parsers and HTTP readers written to standards. However, custom parsers may have taken certain dependencies on our previous formatting of the responses and the following breaking changes might impact them. Our recommendation is to treat xml content to standard as valid parsers do and to not take strong dependency on line breaks, whitespaces, ordering of elements etc.

Here are a list of changes:

  • AtomPub XML response as part of the new release does not have line breaks and whitespaces in between the XML elements; It is in a compact form which would help in reducing the amount of data transferred while staying equivalent to the XML generated prior to the service update. Standard XML parsers are not impacted by this but customers have reported breaks in custom logic. We recommend that clients that roll their own parsers are compatible with XML specifications which handle such changes seamlessly.
  • AtomPub XML response ordering of xml elements (title, id etc.) can change. Parsers should not take any dependency on ordering of elements.
  • A “type” placeholder has been added to the Content-Type HTTP header. For example, for a query response (not point query) the content type will have “type=feed” in addition to charset and application/atom+xml.
    • Previous version: Content-Type: application/atom+xml;charset=utf-8
    • New version:       Content-Type: application/atom+xml;type=feed;charset=utf-8
  • A new response header is returned: X-Content-Type-Options: nosniff to reduce MIME type security risks.

Please reach out to us via forums or this blog if you have any concerns.

Windows Azure Storage Team