In my reviews of XML standards and Microsofts .Net products, Ive consistently questioned whether Microsoft will support the standards and, if so, how fully. Well, just about two months after the release of the key XML Schema standard, it looks as if Microsoft is going for full support of the standards, rather than its more common embrace-and-extend strategy.
I came to this conclusion while at the Microsoft TechEd conference last month in Atlanta. In sessions about deploying Web services and using XML (which were heavily attended), Microsoft developers and managers consistently showed examples based on thorough support of XML standards.
I even attended a session on the XML Schema standard itself, where the presenter said straight out that developers should be using the XML Schema Definition instead of the XML Data Reduced schema on which many Microsoft products, including BizTalk Server 2000, are based.
From the beginning, in Microsofts moves toward XML and in my dealings with the Microsoft groups working on XML, Ive seen a much different attitude toward standards than Ive usually seen from Microsoft. Typically, it quickly becomes obvious that Microsofts main goal is to make just enough changes in a standard so it works better on Microsoft platforms than on any other, even if that means breaking the standard altogether. This has been commonly called the embrace-and-extend strategy.
Lets give Microsoft credit for realizing that this strategy would be a disaster with XML, especially because XML is at the heart of the companys .Net strategy. If Microsoft wants .Net to become one of the big platforms for developing B2B and Web services, then its tools need to work well with everything. If .Net only works well with Microsoft systems, then businesses wont use it to build their e-business infrastructures.
Despite the fact that sticking by XML standards makes perfect sense to Microsoft, we need to keep an eye on what the companys doing. Some still think that Microsoft wont be able to stop itself from trying to embrace and extend XML.