<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Microsoft XML Team's WebLog - All Comments</title><link>http://blogs.msdn.com/b/xmlteam/</link><description>Out of the Angle Brackets</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: The world has moved on, have you? Xml APIs you should avoid using.</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/08/the-world-has-moved-on-have-you-xml-apis-you-should-avoid-using.aspx#10231531</link><pubDate>Mon, 31 Oct 2011 06:17:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10231531</guid><dc:creator>Pawel</dc:creator><description>&lt;p&gt;@Simon:&lt;/p&gt;
&lt;p&gt;Thanks for reading the blog post. I appreciate your taking the time to express your opinion in a thoughtful way. One of the intents of providing such guidance as in our last post is to trigger valuable comments from outside Microsoft such as yours. Such input will help us in shaping this to be a better API in the future. &lt;/p&gt;
&lt;p&gt;One of the main reason why we have two kinds of APIs for the doing same thing is compatibility. It was extremely important that applications written for .NET Framework 2.0 continued to work on .NET Framework 3.0 and 3.5. since both .NET Framework 3.0 and 3.5 were in-place updates. This means that once you installed a newer version of the .NET Framework on your machine all applications compiled against .NET Framework 2.0 would automatically run against the newer version you just installed. This excluded the possibility of removing any API in .NET Framework 3.0 or 3.5. From this point of view .NET Framework 4 was the first release we could potentially remove the APIs deprecated in .NET Framework 2.0. Unfortunately even in .NET Framework 4 there are still some classes not owned by the Xml team (e.g. System.Web.UI.WebControls.Xml) that use the obsolete APIs. &lt;/p&gt;
&lt;p&gt;There were two main issues with XmlTextReader and XmlTextWriter classes. These are mentioned in security sections of the standard MSDN help for these classes &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx"&gt;msdn.microsoft.com/.../system.xml.xmltextreader.aspx&lt;/a&gt; and &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-us/library/system.xml.xmltextwriter.aspx"&gt;msdn.microsoft.com/.../system.xml.xmltextwriter.aspx&lt;/a&gt; as well as in specific MSDN articles around System.Xml security as mentioned below : &lt;/p&gt;
&lt;p&gt;- XmlTextReader parses DTD by default which can lead to DTD entity expansion DoS attacks if the DTD comes from an untrusted source - &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-us/library/ms172415.aspx"&gt;msdn.microsoft.com/.../ms172415.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- XmlTextWriter allows for writing invalid Xml documents e.g. by not checking whether the characters written by the writer are valid Xml characters - &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-us/library/ms172416.aspx"&gt;msdn.microsoft.com/.../ms172416.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Changing any of the above behaviors would break existing applications people may not even be able to fix (e.g. the source code has been lost). On the other hand not fixing these issues feels wrong. You can find more details about improvements introduced to the XmlReader and XmlWriter classes here:&lt;/p&gt;
&lt;p&gt;- New features in the XmlReader class &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-US/library/8459257a(v=VS.90).aspx"&gt;msdn.microsoft.com/.../8459257a(v=VS.90).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- New features in the XmlWriter class &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-us/library/sfk4704d(v=VS.90).aspx"&gt;msdn.microsoft.com/.../sfk4704d(v=VS.90).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Moving from XmlTextReader and XmlTextWriter to XmlReader and XmlWriter respectively is relatively easy for applications that use classes shipped with .NET Framework to read and write Xml documents which. I believe this is the way the vast majority of applications use Xml reader and writer APIs.&lt;/p&gt;
&lt;p&gt;However if an application is using a reader/writer derived from XmlTextReader/XmlTextWriter then I agree that it may require a lot of effort to move. In any case it is still up to the user to decide whether to move or not. If the user decides that the benefits (e.g. character checking) won’t justify the cost then s/he may stick to the old APIs. In case of new applications - the msdn documentation for XmlTextReader and XmlTextWriter (and XmlReader and XmlWriter) for .NET Framework 2.0 and up recommends using XmlReader and XmlWriter APIs and creating instances using factory methods. Indeed, customizing the behavior of XmlReader and XmlWriter requires a bit more work than just deriving and overriding selected methods as you need to wrap the XmlReader/XmlWriter and forward the calls (as described &lt;a rel="nofollow" target="_new" href="http://www.tkachenko.com/blog/archives/000585.html"&gt;www.tkachenko.com/.../000585.html&lt;/a&gt;) but it gives you all the functionality that is missing in XmlTextReader and XmlTextWriter classes.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10231531" width="1" height="1"&gt;</description></item><item><title>re: The world has moved on, have you? Xml APIs you should avoid using.</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/08/the-world-has-moved-on-have-you-xml-apis-you-should-avoid-using.aspx#10227606</link><pubDate>Wed, 19 Oct 2011 15:39:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10227606</guid><dc:creator>Scott Brickey</dc:creator><description>&lt;p&gt;The world has moved on... to XSLT 2... when can we expect MS to catch up?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10227606" width="1" height="1"&gt;</description></item><item><title>re: The world has moved on, have you? Xml APIs you should avoid using.</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/08/the-world-has-moved-on-have-you-xml-apis-you-should-avoid-using.aspx#10225446</link><pubDate>Fri, 14 Oct 2011 19:07:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10225446</guid><dc:creator>Santosh Arisetty</dc:creator><description>&lt;p&gt;Decent explanation, why few of the API&amp;#39;s were made obsolete. Of course we need to change the code accordingly to ensure better support. Keep posting.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10225446" width="1" height="1"&gt;</description></item><item><title>re: The world has moved on, have you? Xml APIs you should avoid using.</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/08/the-world-has-moved-on-have-you-xml-apis-you-should-avoid-using.aspx#10224552</link><pubDate>Thu, 13 Oct 2011 13:52:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10224552</guid><dc:creator>Simon Cropp</dc:creator><description>&lt;p&gt;In response &lt;a rel="nofollow" target="_new" href="http://simoncropp.com/how-to-mismanage-an-api"&gt;simoncropp.com/how-to-mismanage-an-api&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10224552" width="1" height="1"&gt;</description></item><item><title>re: Xslt 1.0 biggest issues (kind of) solved</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/09/xslt-1-0-biggest-issues-kind-of-solved.aspx#10224155</link><pubDate>Wed, 12 Oct 2011 19:36:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10224155</guid><dc:creator>Santosh Arisetty</dc:creator><description>&lt;p&gt;When can we expect XLST 2.0 support in core framework of .Net ? Its been a long time that XLST 2.0 is released. Hopefully it will be in place soon.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10224155" width="1" height="1"&gt;</description></item><item><title>re: The world has moved on, have you? Xml APIs you should avoid using.</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/08/the-world-has-moved-on-have-you-xml-apis-you-should-avoid-using.aspx#10222709</link><pubDate>Mon, 10 Oct 2011 10:02:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10222709</guid><dc:creator>Ehsan Mohammadi</dc:creator><description>&lt;p&gt;Thanks&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10222709" width="1" height="1"&gt;</description></item><item><title>re: The world has moved on, have you? Xml APIs you should avoid using.</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/08/the-world-has-moved-on-have-you-xml-apis-you-should-avoid-using.aspx#10222575</link><pubDate>Mon, 10 Oct 2011 00:21:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10222575</guid><dc:creator>John</dc:creator><description>&lt;p&gt;&amp;quot;the world has moved on&amp;quot; from XML to Json :-)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10222575" width="1" height="1"&gt;</description></item><item><title>re: Xslt 1.0 biggest issues (kind of) solved</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/09/xslt-1-0-biggest-issues-kind-of-solved.aspx#10222515</link><pubDate>Sun, 09 Oct 2011 18:06:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10222515</guid><dc:creator>Lionel</dc:creator><description>&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;As you said, having workarounds rather than real solutions is almost never ideal, however. &amp;nbsp;Maybe you could support XSLT 2.0 in the not-too-distant future?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10222515" width="1" height="1"&gt;</description></item><item><title>re: Xslt 1.0 biggest issues (kind of) solved</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/09/xslt-1-0-biggest-issues-kind-of-solved.aspx#10222491</link><pubDate>Sun, 09 Oct 2011 15:44:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10222491</guid><dc:creator>Justin</dc:creator><description>&lt;p&gt;Or use XQSharp which is a native .Net XSLT 2.0 processor:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.xqsharp.com"&gt;http://www.xqsharp.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You guys have really dropped the ball with XSLT 2.0.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10222491" width="1" height="1"&gt;</description></item><item><title>re: Xslt 1.0 biggest issues (kind of) solved</title><link>http://blogs.msdn.com/b/xmlteam/archive/2011/10/09/xslt-1-0-biggest-issues-kind-of-solved.aspx#10222486</link><pubDate>Sun, 09 Oct 2011 15:23:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10222486</guid><dc:creator>Jonathan Allen</dc:creator><description>&lt;p&gt;Yea, I think I&amp;#39;ll just use Saxon for XSLT work. &lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://saxon.sourceforge.net/"&gt;http://saxon.sourceforge.net/&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10222486" width="1" height="1"&gt;</description></item></channel></rss>