W3C Recommendations and Other XML Standards Supported by MSXML and System.Xml
Microsoft is committed to helping to develop and to support industry standards for data interoperability, and XML is one of the most crucial of these. This is not to say, however, that we encourage or support every single specification that is touted as a "standard."
For example:
- We do not support XML-related standards in the core components until they are finalized by the relevant organization. This is largely because of a hard lesson learned by implementing an incomplete version of the XSLT specification in Internet Explorer 5; this created considerable customer confusion and a long-term support expense when the final W3C XSLT 1.0 Recommendation ended up being incompatible with the draft IE5 supported. We do participate in the development of several XML-related specs and develop prototype implementations based on drafts. We also encourage MVPs and other XML specialists to implement draft specifications (and specs we choose not to support) on the .NET platform so that customers who can benefit from them have that option.
- We focus on XML specifications that are related to data interoperability, and less on those aimed at making code more portable. XML's key value is in liberating data from the applications that produce it and the platforms on which it is produced, stored, and processed. Efforts to standardize XML APIs and processing languages have been useful as a common framework, but actual code portability across platforms is not practical at this point. Microsoft is very willing to be constrained by industry standards to
The W3C Recommendations currently supported include:
Other de facto standards supported by the core XML stacks include:
W3C Recommendations NOT Supported at This Time
The Data Programmability / XML team focuses on core infrastructural XML technologies. Thus, we don’t implement – or decide not to implement – UI-oriented specs such as XHTML, CSS, SVG, XForms . There are some specs that this team logically could implement but has not yet done so, for a variety of reasons:
- XML 1.1 - Microsoft has deliberately chosen not to support the XML 1.1 Recommendation unless there is significant customer demand. See below for more information.
- DOM Level 3 - This is a refinement of DOM designed to improve code interoperability, whereas we focus our efforts on data interoperability.
- XInclude and xml:id - This is mostly a matter of timing and team resource allocation; we hope to implement them in future releases.
- RDF / OWL - We recognize that these technologies are important in certain domains such as life sciences and national security, but so far we have not gotten enough customer demand to justify supporting them in the core XML libraries.
XML 1.1
XML 1.1 is a W3C Technical Recommendation that was approved in February 2004. XML 1.1 enabled broader support for commonly-used control characters while removing support for others. XML 1.1 also adds support for mainframe control characters and Unicode 3.0. The Unicode 3.0 support enables the creation of XML tags in languages such as Cambodian, Mongolian, Burmese and many others. XML 1.1 also enables the use of previously illegal characters within XML tag names (such as musical or mathematical symbols).
Differences between XML 1.0 and XML 1.1 break the interoperable nature of XML. In other words, XML 1.1 is not backwards compatible with XML 1.0. This means that an organization’s XML 1.1 data may be incompatible with their partners' and the majority of tools on the market. Due to this issue many software vendors have decided to not support XML 1.1. The W3C acknowledges interoperability risks in the XML 1.1 specification, recommending organizations generate XML 1.0 unless a specific feature of XML 1.1 is required.
While XML 1.1 may initially appear to be the most current version of the XML specification, the W3C lists both XML 1.0 and 1.1 on the list of current Technical Recommendations. [Link to http://www.w3.org/TR/] This means that XML 1.0 is not deprecated or replaced by the XML 1.1 specification.
Microsoft, like many in the XML community, does not support XML 1.1 due to interoperability risks with existing XML 1.0 implementations. A more detailed technical explanation of the issues associated with XML 1.1 is available at http://sqljunkies.com/WebLog/mrys/archive/2004/02/05/972.aspx.