June CTP of SQL Server 2005 has been released: What's noteworthy in the XML area
As Paul Flessner publicly announced at his TechEd 2005 keynote, the world-wide RTM launch date has been set to the week of Nov 7th 2005 and the June community tech preview (CTP) of SQL Server 2005 has been released. Again, we have added improvements in stability, performance and scalability. And like for the previous CTPs, I have a list of some important changes in the XML area. Note that the release comes with a more general breaking changes list that you should take a look at as well.
Here is the list of changes that may affect existing usages of XML:
- As previously discussed, the XML data type methods cannot be used directly in CHECK constraints anymore but need to be wrapped in a UDF
- Whitespace parsing rules for attribute values have been fixed
- Whitespace preservation measures in serialization: The last whitespace character in a preserved whitespace only text node will now always be entitized. This guarantees that replication and BCP out/in preserves the whitespace information. An option to not entitize it will be added in a future CTP.
- Some more XQuery alignments were done:
Several string functions are now aligned to the July 2004 and later XQuery function and operator working drafts regarding their behaviour when the empty sequence () is passed:
- fn:substring() returns the zero-length string ('') instead of () when any of the parameters is empty sequence.
- fn:string-length() returns 0 instead of () when empty sequence is being passed.
- fn:contains() treats () input as '' (the zero-length string).
- replace value of with an empty sequence as the new value now raises a runtime error unless the empty value is given explicitly as (). This guarantees that empty sequences that are generated due to our mapping of XQuery runtime errors to the empty sequence will not accidentally overwrite values.
- Additional XSD restrictions:
We disallow xs:ID/xs:IDREF/xs:IDREFS types on elements. The semantics was not completely implemented in earlier CTP and Beta versions, so we decided to disable them in this release instead of giving incorrect behaviour.
In addition, we still have some additional work to get done regarding the above mentioned whitespace preservation options and some encoding issues in the upcoming CTPs. As always, please use the new CTP, and provide us feedback. We have done lots to improve performance and appreciate feedback on where you want us to continue to improve (even for after RTM :-)).