My reasoning:
SQL Server 2008 will ship with what is still a cut down version of XQuery
LINQ has already been released to much acclaim/marketing with Visual Studio 2008 / .NET 3.5
With these two significant releases out of the way, there is now nothing further to hold up a full XQuery 1.0 implementation in .NET. An attempt at an earlier XQuery move that overlapped with these 2 products would have had potential to cause significant confusion, and a few headaches for the marketing guys.
There are of course a number of other factors that will weigh on the decision-makers minds:
- Oracle's Out-Sourcing of XQuilla
- The now significant number of serious 'Industrial-Strength' XQuery implementations. XQuery has achieved 'Critical-Mass'
- Making full use of the LINQ to XML/XSD and SQL Server XQuery talent-pool while its still 'fresh'
- .NET 3.5 is now significantly better placed for impementing incremental changes to standards through extension methods (as used by LINQ).
This raises of course a number of follow up questions, these are just a few:
- Would a .NET implementation now make much difference to the uptake of XQuery?
- Would a .NET XSLT 2.0 implementation come at the same time?
- Would this be too too late for Microsoft anyway, have they missed the boat?
This is of course only a personal view, and I may well be wide of the mark. But to me the timing seems about right...