<?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>Mark Fussell's WebLog : XML</title><link>http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx</link><description>Tags: XML</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>System.Xml v2 Articles posted by Alex Homer</title><link>http://blogs.msdn.com/mfussell/archive/2005/06/22/431425.aspx</link><pubDate>Wed, 22 Jun 2005 10:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:431425</guid><dc:creator>mfussell</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/431425.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=431425</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://www.daveandal.net/home.asp"&gt;Alex&lt;/A&gt; has written two good overview articles on System.Xml in .NET v2.0 - &lt;A href="http://www.15seconds.com/issue/050601.htm"&gt;part 1&lt;/A&gt; on the XmlReader and &lt;A href="http://www.15seconds.com/issue/050615.htm"&gt;part 2&lt;/A&gt;&amp;nbsp;on the XmlWriter.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=431425" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>Anders Hejlsberg on XML and Programming Languages</title><link>http://blogs.msdn.com/mfussell/archive/2005/06/14/Hejlsberg.aspx</link><pubDate>Tue, 14 Jun 2005 10:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:428822</guid><dc:creator>mfussell</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/428822.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=428822</wfw:commentRss><description>One good reason to sign up for &lt;A href="http://msdn.microsoft.com/events/pdc/"&gt;PDC 2005&lt;/A&gt; is to hear Anders &lt;A href="http://www.infoworld.com/article/05/06/10/HNhejlsberg_1.html"&gt;elaborate more on this work&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=428822" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category><category domain="http://blogs.msdn.com/mfussell/archive/tags/PDC/default.aspx">PDC</category></item><item><title>.NET 2.0 XML Perf Comparison with Sun</title><link>http://blogs.msdn.com/mfussell/archive/2005/06/14/XML-Perf-Comparison-with-Sun.aspx</link><pubDate>Tue, 14 Jun 2005 09:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:428816</guid><dc:creator>mfussell</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/428816.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=428816</wfw:commentRss><description>&lt;P&gt;As presented in my &lt;A href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnxml/html/SysXMLVS05.asp"&gt;article on System.Xml Beta 1&lt;/A&gt; (which was effectively re-written into the Beta 2 version of my System.Xml book) the #1 feature in the .NET 2.0 release for System.Xml was performance. In the past Sun has come out bashing the XML performance support in .NET 1.1 which&amp;nbsp;I wrote about &lt;a href="http://blogs.msdn.com/mfussell/archive/2004/11/12/256317.aspx"&gt;here&lt;/A&gt;. Now all has been vindicated officially with an &lt;A href="http://msdn.microsoft.com/vstudio/java/compare/xmlperf/default.aspx"&gt;XML&amp;nbsp;performance comparison report&lt;/A&gt; between .NET 2.0 Beta2, .NET 1.1, and Sun Java 1.5 Platforms. Simply by looking at the bar charts, in the majority of scenarios .NET 2.0 Beta 2 was twice as fast as the Sun implementation when parsing XML. Superb!&lt;/P&gt;
&lt;P&gt;Furthermore here is a comparison article for &lt;A href="http://msdn.microsoft.com/vstudio/java/compare/webserviceperf/default.aspx"&gt;Web Services performance&lt;/A&gt;&amp;nbsp;between&amp;nbsp;.NET 2.0 Beta 2, .NET 1.1, Sun JWSDP 1.5 and IBM WebSphere 6.0. Of course these numbers were helped by the improvements&amp;nbsp;in System.Xml. &amp;nbsp;Now that I work on the WSE team we are also applying the perf love on higher level services such as XML digtial signature and WS-Security. However for those people who ask whether WSE 3.0 will be based on the XmlReader and XmlWriter for the pipeline processing, I am afraid that this is not going to happen. WSE is fundamentally XmlDocument (XML DOM) based and it is too much to move this to a stream based API in the 3.0 release. However the memory working set in WSE 3.0 has been improved substantially and when using MTOM combined with the ASMX pipeline and HTTP, it is possible to stream binary data from a service onto the network stream effeciently.&lt;/P&gt;
&lt;P&gt;Now we just need to complete the performance comparison work by having an up-to-date face-off with the latest XSTL processors using &lt;A href="http://g.msn.com/9SE/1?http://www.datapower.com/xmldev/xsltmark.html?&amp;amp;&amp;amp;DI=293&amp;amp;IG=5b6d511a501f4599a3481fba9c22bc00&amp;amp;POS=3&amp;amp;CM=WPU&amp;amp;CE=3&amp;amp;CS=AWP&amp;amp;SR=3"&gt;the XSLTMark &lt;/A&gt;benchmark and the .NET 2.0&amp;nbsp;&lt;A href="http://msdn2.microsoft.com/library/ms163414(en-us,vs.80).aspx"&gt;XslCompiledTransform&lt;/A&gt; class&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=428816" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>ADO.NET and System.Xml v. 2.0--The Beta Version (2nd Edition) now Published</title><link>http://blogs.msdn.com/mfussell/archive/2005/03/23/401297.aspx</link><pubDate>Thu, 24 Mar 2005 01:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:401297</guid><dc:creator>mfussell</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/401297.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=401297</wfw:commentRss><description>&lt;p&gt;In time for the upcoming Visual Studio&amp;nbsp;2005 and .NET v2.0 Beta 2 release, the updated version of my &lt;em&gt;&lt;a href="http://www.amazon.com/gp/product/product-description/0321247124/ref=dp_item-information_0/002-6713851-7223261?%5Fencoding=UTF8&amp;amp;n=507846&amp;amp;s=books"&gt;ADO.NET and System.Xml&lt;/a&gt;&lt;/em&gt; book has now been published. See this &lt;A href="http://blogs.msdn.com/mfussell/articles/books.aspx"&gt;book list &lt;/a&gt;for more information and where to download the code examples from.&amp;nbsp;Alternatively just &lt;a href="http://www.amazon.com/gp/product/product-description/0321247124/ref=dp_item-information_0/002-6713851-7223261?%5Fencoding=UTF8&amp;amp;n=507846&amp;amp;s=books"&gt;buy&lt;/a&gt; a copy so that I can feed my children&amp;nbsp;and bribe my wife to convince her that the hours of writing were worthwhile. &lt;/p&gt; &lt;p&gt;If you bought a copy of the first version of this book, this version is a total re-write and&amp;nbsp;twice as thick, reflecting that a year and a half changes a product in many ways. Given that this is on ADO.NET it also covers features from SQL Server 2005 and complements &lt;a href="http://staff.develop.com/bobb/weblog/"&gt;Bob Beauchemin&lt;/a&gt;'s&amp;nbsp;et al book&amp;nbsp;&lt;em&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321180593/qid=1111631253/sr=1-1/ref=sr_1_1/002-6713851-7223261?v=glance&amp;amp;s=books"&gt;A First Look at Microsoft SQL Server 2005 for Developers&lt;/a&gt;&lt;/em&gt;. I would not buy this book unless you have a sufficient understanding of either ADO.NET or System.Xml today, since this simply covers the delta from .NET v1.1 to .NET v2.0. For example there is a chapter on the XPathNavigator and XmlDocument class enhancements, but you have to understand the existing API to get the most benefit from this. The MSDN2 documentation &lt;a href="http://msdn2.microsoft.com/library/2bcctyt8.aspx"&gt;here &lt;/a&gt;is a good place to start (if you want to know more about MSDN2 read &lt;a href="http://pluralsight.com/blogs/tewald/archive/2004/09/23/2368.aspx"&gt;this &lt;/a&gt;blog entry).&lt;/p&gt; &lt;p&gt;If you feel compelled to provide feedback, I would love to hear suggestions as to what to add or improve especially for the chapters on System.Xml. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=401297" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>Combining the XmlReader and XmlWriter classes for simple streaming transformations</title><link>http://blogs.msdn.com/mfussell/archive/2005/02/12/371546.aspx</link><pubDate>Sat, 12 Feb 2005 08:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:371546</guid><dc:creator>mfussell</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/371546.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=371546</wfw:commentRss><description>&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: Helvetica; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Times New Roman"&gt;The &lt;span class="c1"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;XmlReader&lt;/i&gt;&lt;/span&gt; and &lt;span class="c1"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;XmlWriter&lt;/i&gt;&lt;/span&gt; classes can often be combined to provide simple streaming transformations rather than resorting to XSLT which requires a the document to be loaded into memory. This class combination is often faster and uses less memory, although it requires more code and is less flexible in the types of transformations possible. However for many scenarios it is ideal. Say for example you wanted to add a new element in several repeating places to an existing document. The &lt;i style="mso-bidi-font-style: normal"&gt;XmlWriter.WriteNode&lt;/i&gt; method is useful in pulling from an &lt;i style="mso-bidi-font-style: normal"&gt;XmlReader&lt;/i&gt; and pushing to an &lt;i style="mso-bidi-font-style: normal"&gt;XmlWriter&lt;/i&gt; to achieve this, but it does have a limitation in that it writes the current node and all its children to the &lt;span class="C10"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-FAMILY: 'Times New Roman'; mso-ansi-font-size: 10.0pt"&gt;XmlWriter&lt;/span&gt;&lt;/i&gt;&lt;/span&gt; without providing more fine-grained control.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Times New Roman"&gt;The code below shows a method called &lt;span class="C10"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-FAMILY: 'Times New Roman'; mso-ansi-font-size: 10.0pt"&gt;WriteShallowNode&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;, which writes individual nodes to the &lt;span class="C10"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-FAMILY: 'Times New Roman'; mso-ansi-font-size: 10.0pt"&gt;XmlWriter&lt;/span&gt;&lt;/i&gt;&lt;/span&gt; from the &lt;span class="C10"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="FONT-FAMILY: 'Times New Roman'; mso-ansi-font-size: 10.0pt"&gt;XmlReader&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;. In this way you can change individual nodes during the transformation process. &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;//This method is useful for streaming transformation with the &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;//XmlReader and the XmlWriter. It pushes through single nodes in the stream&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;static&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; WriteShallowNode( XmlReader reader, XmlWriter writer )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; ( reader == &lt;span style="COLOR: blue"&gt;null&lt;/span&gt; )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;throw&lt;/span&gt; &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;ArgumentNullException&lt;/span&gt;&lt;/b&gt;("reader");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; ( writer == &lt;span style="COLOR: blue"&gt;null&lt;/span&gt; )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;throw&lt;/span&gt; &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;ArgumentNullException&lt;/span&gt;&lt;/b&gt;("writer");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;switch&lt;/span&gt; ( reader.NodeType )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.Element:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteStartElement( reader.Prefix, reader.LocalName, reader.NamespaceURI );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteAttributes( reader, &lt;span style="COLOR: blue"&gt;true&lt;/span&gt; );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; ( reader.IsEmptyElement )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteEndElement();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.Text:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteString( reader.Value );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.Whitespace:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.SignificantWhitespace:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteWhitespace(reader.Value);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.CDATA:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteCData( reader.Value );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.EntityReference:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteEntityRef(reader.Name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.XmlDeclaration:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.ProcessingInstruction:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteProcessingInstruction( reader.Name, reader.Value );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.DocumentType:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteDocType( reader.Name, reader.GetAttribute( "PUBLIC" ), reader.GetAttribute( "SYSTEM" ), reader.Value );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.Comment:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteComment( reader.Value );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;case&lt;/span&gt; XmlNodeType.EndElement:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteFullEndElement();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="Body" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: windowtext"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="Body" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;font face="Times New Roman"&gt;Performing simple transformations with this method is very straightforward. The code below (written for .NET v2.0) reads the &lt;/font&gt;&lt;span class="C10"&gt;&lt;span style="FONT-SIZE: 9pt; mso-bidi-font-size: 10.0pt"&gt;&lt;font face="Courier"&gt;movies.xml&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Times New Roman"&gt; document and for those &lt;/font&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Courier"&gt;dvd&lt;/span&gt;&lt;span style="FONT-FAMILY: Courier"&gt; &lt;/span&gt;&lt;font face="Times New Roman"&gt;elements whose attribute &lt;/font&gt;&lt;span class="C10"&gt;&lt;span style="FONT-SIZE: 9pt; mso-bidi-font-size: 10.0pt"&gt;&lt;font face="Courier"&gt;genre&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Times New Roman"&gt; is an &lt;/font&gt;&lt;span class="C10"&gt;&lt;span style="FONT-SIZE: 9pt; mso-bidi-font-size: 10.0pt"&gt;&lt;font face="Courier"&gt;action&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Times New Roman"&gt; type, a new &lt;/font&gt;&lt;span class="C10"&gt;&lt;span style="FONT-SIZE: 9pt; mso-bidi-font-size: 10.0pt"&gt;&lt;font face="Courier"&gt;publisher&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Times New Roman"&gt; element is written to the output.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;Input document:&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&amp;lt;dvdstore&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;dvd genre="action" publicationdate="1990" &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;title&amp;gt;T2&amp;lt;/title&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;review&amp;gt;This film was &amp;lt;b&amp;gt;impressive&amp;lt;/b&amp;gt; in its creativity.&amp;lt;/review&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;stats&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;price&amp;gt;8.99&amp;lt;/price&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;id&amp;gt;123-456&amp;lt;/id&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/stats&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/dvd&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;font face="Times New Roman"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;….&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;dvdstore&lt;/span&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;static&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; AddElementWithWriteShallowNode()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;XmlWriterSettings settings = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; XmlWriterSettings();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;settings.Indent = &lt;span style="COLOR: blue"&gt;true&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;using&lt;/span&gt; (XmlReader reader = XmlReader.Create("movies.xml"))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;using&lt;/span&gt; (XmlWriter writer = XmlWriter.Create(&lt;b&gt;&lt;span style="COLOR: navy"&gt;Console&lt;/span&gt;&lt;/b&gt;.Out, settings))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;while&lt;/span&gt; (reader.Read())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (reader.IsStartElement("dvd") &amp;amp;&amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader.GetAttribute("genre") == "action")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: green"&gt;//Write the dvd element&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;WriteShallowNode(reader, writer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: green"&gt;//Now add a new publisher element to the output&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteElementString("publisher",&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"metal.sword.com", "Samurai Films");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;WriteShallowNode(reader, writer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Times New Roman"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;Output document:&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&amp;lt;dvdstore&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;dvd genre="action" publicationdate="1990" &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;strong&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;p:publisher xmlns:p='metal.sword.com'&amp;gt;Samurai Films&amp;lt;/p:publisher&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;title&amp;gt;T2&amp;lt;/title&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;review&amp;gt;This film was &amp;lt;b&amp;gt;impressive&amp;lt;/b&amp;gt; in its creativity.&amp;lt;/review&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;stats&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;price&amp;gt;8.99&amp;lt;/price&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;id&amp;gt;123-456&amp;lt;/id&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/stats&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/dvd&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;font face="Times New Roman"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;….&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: FR; mso-no-proof: yes"&gt;dvdstore&lt;/span&gt;&lt;span lang="FR" style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Without this method you have to use the &lt;i style="mso-bidi-font-style: normal"&gt;XmlWriter WriteXXX&lt;/i&gt; methods to re-write the XML document to the output if all you wanted to do was inject a single publisher element into the tree.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Times New Roman"&gt;For an excellent and complete application example of using this approach see &lt;/font&gt;&lt;a href="http://weblogs.asp.net/dwahlin/"&gt;&lt;font face="Times New Roman"&gt;Dan Wahlin’s&lt;/font&gt;&lt;/a&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;font face="Times New Roman"&gt; &lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="tocheading1"&gt;&lt;span style="FONT-WEIGHT: normal; FONT-SIZE: 11pt; mso-bidi-font-weight: bold"&gt;&lt;a href="http://www.xmlforasp.net/CodeSection.aspx?csID=109"&gt;&lt;span style="FONT-FAMILY: 'Times New Roman'; mso-bidi-font-weight: normal"&gt;&lt;font size="2"&gt;Generate Dynamic Maps and Flight Routes with XML and SVG&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: Helvetica; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'"&gt;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=371546" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>System.Xml V2 book - C'est Fini</title><link>http://blogs.msdn.com/mfussell/archive/2005/02/04/366895.aspx</link><pubDate>Fri, 04 Feb 2005 09:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:366895</guid><dc:creator>mfussell</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/366895.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=366895</wfw:commentRss><description>&lt;p&gt;I finished reviewing the final versions of&amp;nbsp;my&amp;nbsp;chapters for the &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321247124/qid=1107506277/sr=8-4/ref=sr_8_xs_ap_i4_xgl14/002-8549127-6696827?v=glance&amp;amp;s=books&amp;amp;n=507846"&gt;ADO.NET and System.Xml&amp;nbsp;v 2.0&lt;/a&gt;&amp;nbsp;book which was a huge relief. Having read through it numerous times you start to get numb to&amp;nbsp;your writing style. Needless to say the chapters where all re-written from scratch with completely new content throughout with my&amp;nbsp;favorite being&amp;nbsp;chapter 9, simply because&amp;nbsp;I&amp;nbsp;was closest&amp;nbsp;to the XmlReader and XmlWriter. For instance it has an example of an XmlWriter.WriteShallowNode (XmlReader reader)&amp;nbsp;method which&amp;nbsp;enables you to&amp;nbsp;do easier XmlReader to XmlWriter transformations by enabling single nodes to be written, rather than whole sub-trees.&amp;nbsp;&amp;nbsp;Here is the list of the chapters from the v2 book.&lt;/p&gt; &lt;p&gt;&lt;i&gt;&lt;font face="Times New Roman" size="2"&gt;&lt;font color="#808080"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;• &lt;font face="Times New Roman" size="2"&gt;Chapter &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;1: New Concepts in Data Access&lt;/p&gt;&lt;/font&gt; &lt;p align="left"&gt;&lt;strong&gt;ADO.NET Enhancements&lt;/strong&gt;&lt;/p&gt;&lt;/i&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 2: ADO.NET Data Management Enhancements&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 3: Provider Factories, Schema Discovery, and Security&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 4: The &lt;/font&gt;&lt;font face="Courier" size="1"&gt;DataSet &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;and &lt;/font&gt;&lt;font face="Courier" size="1"&gt;DataTable &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Classes&lt;/p&gt;&lt;/font&gt;&lt;b&gt;&lt;i&gt;&lt;font face="Times New Roman" size="2"&gt; &lt;p align="left"&gt;SQL Server 2005 Integration&lt;/p&gt;&lt;/b&gt;&lt;/i&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 5: ADO.NET and SQL Server 2005&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 6: SQL Server 2005 CLR Hosting&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 7: XML in SQL Server 2005&lt;/p&gt;&lt;/font&gt;&lt;b&gt;&lt;i&gt;&lt;font face="Times New Roman" size="2"&gt; &lt;p align="left"&gt;XML Enhancements&lt;/p&gt;&lt;/b&gt;&lt;/i&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 8: XML in the .NET Framework&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 9: Reading and Writing XML&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 10: XML Serialization Enhancements&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 11: XML Document Stores&lt;/p&gt;&lt;/font&gt;&lt;font face="Times New Roman" color="#808080" size="2"&gt; &lt;p align="left"&gt;• &lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;Chapter 12: Transforming XML Documents&lt;/font&gt;&lt;font face="Times New Roman" size="2"&gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;Many XML features fell by the wayside since the first edition of the book, from &lt;a href="http://msdn.microsoft.com/xml/xquerystatus/default.aspx"&gt;XQuery&lt;/a&gt;&amp;nbsp;to the XmlAdapter, but the essence of the v2.0 release, which was about improving the performance of the core XML APIs, providing type information and improved usability, has held together very well. Now that I work on WSE, which is effectively a messaging filter and processing pipeling built directly on top of the System.Xml, simply moving to the v2.0 release is going to give very measurable performarnce in throughput processing.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=366895" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>Binary XML: A Stillborn Spec.</title><link>http://blogs.msdn.com/mfussell/archive/2005/01/14/352812.aspx</link><pubDate>Fri, 14 Jan 2005 08:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:352812</guid><dc:creator>mfussell</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/352812.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=352812</wfw:commentRss><description>&lt;p&gt;I read with continued dismay another &lt;a href="http://news.com.com/2100-7345_3-5534249.html"&gt;article about binary XML&lt;/a&gt;&amp;nbsp;and the bizarre &lt;a href="http://asn1.elibel.tm.fr/xml/finf.htm"&gt;Fast Infoset project&lt;/a&gt;. Tim Bray must be crying in bed at night over Sun's continued persistence that ASN.1 should have been the data interchange format for the world. It lost, XML won and&amp;nbsp;XML works. Go and solve&amp;nbsp;other more&amp;nbsp;useful problems. You only have to look at the failure of XML 1.1, as it&amp;nbsp;split the XML standard into&amp;nbsp;incompatible versions to draw the same analogy with&amp;nbsp;binary XML.&amp;nbsp;CPUs continue to fall in price and if needs dictate,&amp;nbsp;XML processing in hardware will take off to solve the issues of processing time. Not yet another &lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;proprietary &lt;/span&gt;data format.&lt;/p&gt; &lt;p&gt;Just as bad is the W3Cs continued mismanagement by creating working groups such as the &lt;a href="http://dw.com.com/redir?destUrl=http%3A%2F%2Fwww.w3.org%2FXML%2FBinary&amp;amp;siteId=3&amp;amp;oId=2100-7345-5534249&amp;amp;ontId=7343&amp;amp;lop=nl.ex"&gt;Binary Characterization Working Group&lt;/a&gt;&amp;nbsp;to trying and determine all the known uses cases that a binary format could apply to. Given that they&amp;nbsp;"own" XML this is a bit like cutting off your nose to spite your face. It also is interesting to observe that very little of significance has emerged from the WC3 for around&amp;nbsp;three years now. XQuery, although significant, is going to turn up very late to the party blaming traffic. XML 1.1 has&amp;nbsp;caused everyone to run around like headless chickens wondering how to sort out the mess where, the smallest of &lt;a href="http://norman.walsh.name/2004/09/30/xml11"&gt;updates can cause the maximum breaking change&lt;/a&gt;. And XML Schema is such a&amp;nbsp;confused child no one quite knows how to approach it, for fear of having to spend years understanding its complex irrational behavior. The W3C needs to &lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;desperately &lt;/span&gt;find some inspirational &lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;individuals&lt;/span&gt;, nay dictators,&amp;nbsp;to drive some independent innovation if it intends to "ship" anything significant in the next five years.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=352812" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>System.Xml V2 Decisions</title><link>http://blogs.msdn.com/mfussell/archive/2004/12/16/316801.aspx</link><pubDate>Thu, 16 Dec 2004 09:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:316801</guid><dc:creator>mfussell</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/316801.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=316801</wfw:commentRss><description>&lt;p&gt;&lt;A href="http://blogs.msdn.com/arpande/archive/2004/12/15/316200.aspx"&gt;Arpan has posted&lt;/a&gt; on some of the reasons for XmlDocument being the main XML store in System.Xml and the difficulty of supporting standards that are not yet at a recommendation status. Ironically I now find myself in the alternate universe to this where WS-* specifications seem to pop in and out of existence on a daily basis, having to incorporate these into a fast changing project that is laying the path to Indigo. I have been working on WSE 3.0 planning this week and hope to post some more details of the release in the coming weeks.&amp;nbsp;Currently these are the WSE 3.0 themes that I am using to drive the project, which sets the precedence for the features.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;VS2005 (Whidbey) Integration&lt;br /&gt;&amp;nbsp;“WSE 3.0 and VS2005 together provide the platform to build advanced web service implementations.”&lt;/li&gt; &lt;li&gt;Indigo Interoperability and Strategic Direction&lt;br /&gt;&amp;nbsp;“Building solutions with WSE 3.0 and VS2005 engages you directly on the path to Indigo.”&lt;/li&gt; &lt;li&gt;Servicing and Customer Support&lt;br /&gt;&amp;nbsp;“WSE 3.0 continues to maintain focus on customer needs, WS-* standards support and performance enabling you to concentrate on your business needs and less on infrastructure.”&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;As always you have to pick from a huge pile of features and I wish that the team was&amp;nbsp;three times&amp;nbsp;as big. Fortunately other constraints such as being backwardly compatibile with previous releases are not necessary with WSE and so this makes it easier to incorporate new features and&amp;nbsp;remove redundant ones, which creates a very dynamic project. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=316801" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category><category domain="http://blogs.msdn.com/mfussell/archive/tags/WSE/default.aspx">WSE</category></item><item><title>Beta Book Pain, Performance Love</title><link>http://blogs.msdn.com/mfussell/archive/2004/11/12/256317.aspx</link><pubDate>Fri, 12 Nov 2004 08:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:256317</guid><dc:creator>mfussell</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/256317.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=256317</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Writing&amp;nbsp;books on beta products is probably the most painful thing that you can ever endure even if you are in the product team (or &lt;A href="http://blogs.msdn.com/mfussell/archive/2004/11/11/256225.aspx"&gt;was &lt;/a&gt;as in my case). I finally finished up the last XML chapter&amp;nbsp;in the beta version of &lt;em&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321247124/qid=1100239946/sr=8-2/ref=sr_8_xs_ap_i2_xgl14/002-8549127-6696827?v=glance&amp;amp;s=books&amp;amp;n=507846"&gt;ADO.NET and System.Xml V2&lt;/a&gt;&lt;/em&gt;. It is a vast brain dump of the delta between V1.1 and V2.0 for System.Xml coupled with the numerous changes since the PDC 2003 preview release. However I was not able to cover the #1 feature enough of System.Xml V2.0&amp;nbsp;- performance. This will&amp;nbsp;have to wait for any potential future&amp;nbsp;final version of the book depending on sales of this one of course.&amp;nbsp;All I can say is that you will not be disappointed - the XML team has done an incredible job. Every component is significantly more performant and more performance improvements will happen between now and RTM. I just saw the new perf numbers for the XmlDocument (DOM) class scenarios (load, edit, delete, insert,&amp;nbsp;save etc) and they have shown an impressive leap. Sun came out at the beginning of the year &lt;A href="http://blogs.msdn.com/mfussell/archive/2004/02/23/78929.aspx"&gt;bashing the performance &lt;/a&gt;of the XML support in .NET. I cannot wait for them to run their numbers again on V2.0 and once it ships that they will "go dark" on perf&amp;nbsp;for a long time.&amp;nbsp;Simply by adopting the Beta 2 release any XML processing that you have&amp;nbsp;will&amp;nbsp;be&amp;nbsp;screamingly fast.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=256317" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>Using the XmlSecureResolver to restrict access to web sites</title><link>http://blogs.msdn.com/mfussell/archive/2004/10/15/242671.aspx</link><pubDate>Fri, 15 Oct 2004 07:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:242671</guid><dc:creator>mfussell</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/242671.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=242671</wfw:commentRss><description>&lt;p&gt;Having just written an article on XmlResolver and looked through the MSDN docs I realised that there was little in terms of explanation on how to use the XmlSecureResolver. As always code speaks volumes sIo put together this example which shows how the XmlSecureResolver can be used to restrict access to specific web sites. The XmlSecureResolver secures another implementation of an XmlResolver by wrapping the supplied XmlResolver and restricting the resources that it has access to. For instance, the XmlSecureResolver has the ability to prohibit access to particular internet sites or zones. &lt;/p&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&lt;font color="#000000"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;static&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; UsingXmlSecureResolverToAccessURIs()&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="COLOR: navy"&gt;WebPermission&lt;/span&gt;&lt;/b&gt; wb = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;WebPermission&lt;/span&gt;&lt;/b&gt;(&lt;b&gt;&lt;span style="COLOR: teal"&gt;PermissionState&lt;/span&gt;&lt;/b&gt;.None);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wb.AddPermission(&lt;b&gt;&lt;span style="COLOR: teal"&gt;NetworkAccess&lt;/span&gt;&lt;/b&gt;.Connect,&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@"http://msdn.microsoft.com/xml/rss.xml");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;wb.AddPermission(&lt;b&gt;&lt;span style="COLOR: teal"&gt;NetworkAccess&lt;/span&gt;&lt;/b&gt;.Connect,&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@"http://www.w3.org/TR/REC-xml/");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="COLOR: navy"&gt;PermissionSet&lt;/span&gt;&lt;/b&gt; ps = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;PermissionSet&lt;/span&gt;&lt;/b&gt;(&lt;b&gt;&lt;span style="COLOR: teal"&gt;PermissionState&lt;/span&gt;&lt;/b&gt;.None);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ps.AddPermission( wb );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="COLOR: navy"&gt;XmlTextReader&lt;/span&gt;&lt;/b&gt; reader = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;XmlTextReader&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;b&gt;&lt;span style="COLOR: navy"&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(@"http://msdn.microsoft.com/xml/rss.xml");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader.XmlResolver = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;XmlSecureResolver&lt;/span&gt;&lt;/b&gt;(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;XmlUrlResolver&lt;/span&gt;&lt;/b&gt;(), ps);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;while&lt;/span&gt; (reader.Read()) ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: green"&gt;// This call fails as the site is not in the permission set&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;XmlTextReader&lt;/span&gt;&lt;/b&gt;(@"http://msdn.microsoft.com/sql/rss.xml");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader.XmlResolver = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;XmlSecureResolver&lt;/span&gt;&lt;/b&gt;(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="COLOR: navy"&gt;XmlUrlResolver&lt;/span&gt;&lt;/b&gt;(), ps);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;while&lt;/span&gt; (reader.Read()) ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;catch&lt;/span&gt; (&lt;b&gt;&lt;span style="COLOR: navy"&gt;Exception&lt;/span&gt;&lt;/b&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="COLOR: navy"&gt;Console&lt;/span&gt;&lt;/b&gt;.WriteLine("Unsuccessful Read Access");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="COLOR: navy"&gt;Console&lt;/span&gt;&lt;/b&gt;.WriteLine(e);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;font color="#000000"&gt;When this code is run, only those URIs added to the &lt;span style="COLOR: navy"&gt;&lt;font color="#000000"&gt;WebPermission&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt; class are allowed to be accessed by the XmlTextReader. All others are denied and result in a security exception being thrown. This is extremely useful in restricting the sites that can be visited, especially when the list of sites can be constrained with a Regex expression.&lt;/font&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=242671" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>System.Xml Beta 2 Changes</title><link>http://blogs.msdn.com/mfussell/archive/2004/10/15/242659.aspx</link><pubDate>Fri, 15 Oct 2004 07:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:242659</guid><dc:creator>mfussell</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/242659.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=242659</wfw:commentRss><description>&lt;p&gt;Dare and I compiled the &lt;a id="viewpost" href="/dareobasanjo/archive/2004/10/13/241591.aspx"&gt;&lt;font color="#0000ff"&gt;Upcoming Changes to System.Xml in .NET Framework 2.0 Beta 2&lt;/font&gt;&lt;/a&gt; which he published on the MSDN XML developer center. Mostly my previous &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxml/html/sysxmlvs05.asp"&gt;article &lt;/a&gt;still stands without the #6 and #3 gone. However as a result of implementing the editablable XPathNavigator over the XmlDocument&amp;nbsp;class this has forced us to re-address performance issues with the DOM.Performance is&amp;nbsp;still the&amp;nbsp;top goal for the&amp;nbsp;version 2.0 release and we continues to make improvements. Recently&amp;nbsp;we found&amp;nbsp;that by rewriting the date handling support in the XML Schema processor gave significant performance improvements in certain scenarios. The goal performance goal&amp;nbsp;- to be as good as or better than MSXML 4.0 which has the leading performance benchmarks, particulary for XSLT, today. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=242659" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>Win-Dev 2004 talks on XQuery in SQL Server and System.Xml V2.0</title><link>http://blogs.msdn.com/mfussell/archive/2004/10/05/237964.aspx</link><pubDate>Tue, 05 Oct 2004 07:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:237964</guid><dc:creator>mfussell</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/237964.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=237964</wfw:commentRss><description>&lt;p&gt;I am doing two talks at the &lt;a href="http://butrain.bu.edu/windev/default.asp"&gt;Win-Dev 2004 Conference&lt;/a&gt;&amp;nbsp;on the &lt;a href="http://butrain.bu.edu/windev/track5.asp"&gt;Web Services&lt;/a&gt;&amp;nbsp;track and the &lt;a href="http://butrain.bu.edu/windev/track3.asp"&gt;Databases and Data Access&lt;/a&gt;&amp;nbsp;so if you are going to the conference&amp;nbsp;or live in the Boston area and want to meet up to have a chat,&amp;nbsp;drop me a mail. The talks are;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;WS6 - Whidbey System.Xml&lt;br /&gt;&lt;/strong&gt;&lt;a href="http://butrain.bu.edu/windev/bios.asp#MarkFussell"&gt;Mark Fussell&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Microsoft's System.Xml proved to be revolutionary for working with XML in a variety of different ways. This innovation has continued in the new Whidbey release with various enhancements and new features that simplify development and increase flexibility. This session will introduce you to the various improvements found in Whidbey's System.Xml. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;D4 - XQuery in SQL Server 2005 and System.Xml&lt;br /&gt;&lt;/strong&gt;&lt;a href="http://butrain.bu.edu/windev/bios.asp#MarkFussell"&gt;&lt;font color="#002c99"&gt;Mark Fussell&lt;/font&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;XML brings with it some powerful query languages for dealing with the hierarchical format that it typical of an XML document. The newest and richest query language is known as XQuery. This talk provides an overview of the XQuery language and explores XQuery functions and XQuery DML inside SQL Server 2005. It also details the XQuery support in the .NET Framework as part of System.Xml namespace that enables the querying of XML sources stored outside of the database such as locally stored files or XML received via webservices. By combining queries over SQL Server 2005 and other XML sources XQuery can be used as a data integration language. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=237964" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>Building Custom XmlResolvers Article on MSDN XML Developer Center</title><link>http://blogs.msdn.com/mfussell/archive/2004/10/03/237416.aspx</link><pubDate>Mon, 04 Oct 2004 06:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:237416</guid><dc:creator>mfussell</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/237416.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=237416</wfw:commentRss><description>&lt;p&gt;In&amp;nbsp;between re-writing and updating the chapters for the beta version of the my book &lt;em&gt;A First Look at ADO.NET and System.Xml V2.0,&amp;nbsp;&lt;/em&gt;I found some time to write an article on &lt;a href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnxmlnet/html/cusxmlres.asp"&gt;Building Custom XmlResolvers&lt;/a&gt;&amp;nbsp;for MSDN. What's so great about this class is that it enables you to redirect the location of the XML that you want to load, as well as allowing you to define your own schemes, if necessary (e.g. db:// to load from a database). There are all sorts of great things that you can do with an XmlResolver and you can come up with some fairly intelligent caching solutions if your applications needs this. One aspect that I did not cover in this article is the use of the credentials property of the XmlResolver which there is a good KB article&amp;nbsp;about&amp;nbsp;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;330586"&gt;here&lt;/a&gt; &lt;/p&gt; &lt;p&gt;As this went to press I was talking to a PM on the Frontpage team who complained that one problem they were having is that they did multiple round trips to a SQL Server data base in order to load &amp;lt;xsl:include&amp;gt; stylesheets i.e. one trip per include&amp;nbsp;and this was obviously having a impact on stylesheet compile time in some scenarios. No problem I said, simply write your own XmlResolver that batches up all the &amp;lt;xsl:include&amp;gt; requests into a single batch call to the database and caches them in-memory. You will need to parse the &amp;lt;xsl:include&amp;gt;s in advance is order to know which stylesheets to load, but a quick read with an XmlTextReader on the XSLT stylesheet can tell you the list, which you can then give to the XmlResolver.&lt;/p&gt; &lt;p&gt;It would be good to hear of any uses that you have for custom XmlResolvers in your applications.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=237416" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>TechEd 2004 XML Talk Slides</title><link>http://blogs.msdn.com/mfussell/archive/2004/05/31/145238.aspx</link><pubDate>Tue, 01 Jun 2004 06:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:145238</guid><dc:creator>mfussell</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/145238.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=145238</wfw:commentRss><description>&lt;P&gt;I have finally posted the &lt;A href="http://download.microsoft.com/download/b/8/a/b8ad50e0-4bbc-4809-a0fe-0edee65716ae/dat379.ppt"&gt;slides&lt;/A&gt;&amp;nbsp;and &lt;A href="http://groups.msn.com/CoreXML/documents.msnw"&gt;sample code&lt;/A&gt; for my TechEd 2004 talk on XML in the .NET framework. The samples require a copy of Visual Studio 2005 (i.e. the community drop distributed at TechEd) in order to compile and run.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=145238" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item><item><title>Article on the XML Support in SQL Server 2005</title><link>http://blogs.msdn.com/mfussell/archive/2004/05/24/140558.aspx</link><pubDate>Mon, 24 May 2004 19:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:140558</guid><dc:creator>mfussell</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/mfussell/comments/140558.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mfussell/commentrss.aspx?PostID=140558</wfw:commentRss><description>I worked with Shankar to write this article&amp;nbsp;on the &lt;A href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnsql90/html/sql2k5xml.asp"&gt;XML Support in Microsoft SQL Server 2005&lt;/A&gt;&amp;nbsp;which has just been published on the MSDN XML Developer Center. I would be very interested in comments on how you see an application&amp;nbsp;need for storing XML content in a relational database along with&amp;nbsp;querying and working with this data. E.g. The ability to store WordML documents created from Office 2003.&lt;BR&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=140558" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mfussell/archive/tags/XML/default.aspx">XML</category></item></channel></rss>