BizTalk Utilities CV ,   Jobs ,   Code library
 
Go to the front page to continue learning about XML or select below:

Contents

ReBlogger Contents

Previous posts in .NET XML, System.XML

 
 
Page 19931 of 20224

When Backwards Compatibility Mode Isn`t

Blogger : Dare Obasanjo aka Carnage4Life
All posts : All posts by Dare Obasanjo aka Carnage4Life
Category : .NET XML, System.XML
Blogged date : 2004 Jul 21

Today Arpan (the PM for XML query technologies in the .NET Framework) and I were talking about features we`d like to see on our `nice to have` list for the Orcas release of the .NET Framework. One of the things we thought would be really nice to see in the System.Xml namespace was XPath 2.0. Then Derek being the universal pessimist pointed out that we already have APIs that support XPath 1.0 that only take a string as an argument (e.g. XmlNode.SelectNodes) so we`d have difficulty adding support for another version of XPath without contorting the API.

Not to be dissuaded I pointed out that XPath 2.0 has a backwards compatibility mode which makes it compatible with XPath 1.0. Thus we wouldn`t have to change our Select methods or introduce new methods for XPath 2.0 support since all queries that used to work in the past against our Select methods would still work if we upgraded our XPath implemention to version 2.0. This is where Arpan hit me with the one-two punch. He introduced me to a section of the XPath 2.0 spec called Incompatibilities when Compatibility Mode is true which reads

The list below contains all known areas, within the scope of this specification, where an XPath 2.0 processor running with compatibility mode set to true will produce different results from an XPath 1.0 processor evaluating the same expression, assuming that the expression was valid in XPath 1.0, and that the nodes in the source document have no type annotations other than xdt:untypedAny and xdt:untypedAtomic.

I was stunned by what I read and I am still stunned now. The W3C created XPath 2.0 which is currently backwards incompatible with XPath 1.0 and added a compatibility mode option to make it backwards compatible with XPath 1.0 but it actually still isn`t backwards compatible even when in this mode  This seems completely illogical to me. What is the point of having a backwards compatibility mode if it isn`t backwards compatible Well, I guess now I know if we do decide to ship XPath 2.0 in the future we can`t just add support for it transparently to our existing classes without causing some API churn. Unfortunate.

Caveat: The fact that a technology is mentioned as being on our `nice to have` list or is suggested in a comment to this post is not an indication that it will be implemented in future versions of the .NET Framework.


Read comments or post a reply to : When Backwards Compatibility Mode Isn`t
Page 19931 of 20224

Newest posts
 

    Email TopXML