<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>@ Head : XML</title><link>http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx</link><description>Tags: XML</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Updates on the Snippet Editor</title><link>http://msmvps.com/blogs/bill/archive/2009/09/03/updates-on-the-snippet-editor.aspx</link><pubDate>Thu, 03 Sep 2009 01:03:56 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1720398</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1720398</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/09/03/updates-on-the-snippet-editor.aspx#comments</comments><description>&lt;p&gt;First the good news :&lt;/p&gt;  &lt;p&gt;The February release of the &lt;a href="http://billmccarthy.com/Projects/Snippet_Editor/default.html"&gt;Snippet Editor&lt;/a&gt; has now had &lt;strong&gt;10,000&lt;/strong&gt; downloads !&lt;/p&gt;  &lt;p&gt;Now for bug fix news:&lt;/p&gt;  &lt;p&gt;There were a couple of issues with the paths per language.&amp;#160; A problem with Express Editions of Visual Studio occurred due to partial entries in the registry I didn’t for-see. Initial design and testing was done with full versions of Visual Studio, but I want to ensure that it does work with the express versions, that’s why the tool is standalone not an add-in.&amp;#160; So the good news is I have fixed those bugs (I think).&amp;#160; &lt;/p&gt;  &lt;p&gt;If you want those fixes you can use the original source from Feb and just &lt;a href="http://snippeteditor.codeplex.com/SourceControl/changeset/view/36425#391917"&gt;download the updated products.vb&lt;/a&gt; file. I’ll probably look at rolling this up into a new release in the not to distant future.&lt;/p&gt;  &lt;p&gt;Enjoy :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1720398" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Snippets/default.aspx">Snippets</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category></item><item><title>Snippet Editor 2.1 screen-cast</title><link>http://msmvps.com/blogs/bill/archive/2009/02/05/snippet-editor-2-1-screen-cast.aspx</link><pubDate>Thu, 05 Feb 2009 09:08:31 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1669250</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1669250</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/02/05/snippet-editor-2-1-screen-cast.aspx#comments</comments><description>&lt;p&gt;I’ve just uploaded a new screen cast:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://billmccarthy.com/Projects/Snippet_Editor/screencast.html" target="_blank"&gt;Snippet Editor Tips and Tricks&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Enjoy :)&lt;/p&gt;  &lt;p&gt;(oh and don’t forget the “&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=2895732" target="_blank"&gt;buy me a beer&lt;/a&gt;” button)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1669250" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Snippets/default.aspx">Snippets</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category></item><item><title>New release of Snippet Editor</title><link>http://msmvps.com/blogs/bill/archive/2009/02/04/new-release-of-snippet-editor.aspx</link><pubDate>Tue, 03 Feb 2009 17:31:38 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1668548</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1668548</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/02/04/new-release-of-snippet-editor.aspx#comments</comments><description>&lt;p&gt;Snippet Editor 2.1 is now released on codeplex:    &lt;br /&gt;&lt;a title="http://www.codeplex.com/SnippetEditor" href="http://www.codeplex.com/SnippetEditor"&gt;http://www.codeplex.com/SnippetEditor&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Apart from the few minor bug fixes, it includes improved search and now support for Visual Studio 2010 as well as 2008 and 2005.&lt;/p&gt;  &lt;p&gt;I’ve also added a “buy me a beer” button to this blog, and on the codeplex site, so if you like the Snippet Editor you can help put a smile on my face :) &lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;amp;hosted_button_id=2895732"&gt;&lt;img title="donate" alt="donate" src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/bymeabeer.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The snippet editor remains free: no advertisements, no nag screens.&amp;#160; &lt;/p&gt;  &lt;p&gt;yep, free as in beer ;)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Enjoy :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1668548" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Snippets/default.aspx">Snippets</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category></item><item><title>Work around for MsChart 6.1.89.12 and 6.1.89.13 bug</title><link>http://msmvps.com/blogs/bill/archive/2009/01/23/work-around-for-mschart-6-1-89-12-and-6-1-89-13-bug.aspx</link><pubDate>Fri, 23 Jan 2009 03:06:01 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1664936</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1664936</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/01/23/work-around-for-mschart-6-1-89-12-and-6-1-89-13-bug.aspx#comments</comments><description>&lt;p&gt;Last month (December 2008), Microsoft released some security updates for VB6 components such as the MS Chart control&lt;/p&gt;  &lt;p&gt;The first update &lt;a href="http://support.microsoft.com/kb/932349"&gt;http://support.microsoft.com/kb/932349&lt;/a&gt; updates MS Chart to 6.1.98.12.&amp;#160; &lt;br /&gt;The second update &lt;a href="http://support.microsoft.com/kb/957924"&gt;http://support.microsoft.com/kb/957924&lt;/a&gt;&amp;#160; updates MSChart to 6.1.98.13.&lt;/p&gt;  &lt;p&gt;Both these versions have a serious bug that will crash the application or cause instability, the chart not to draw or display garbage strings on the screen.&amp;#160; &lt;/p&gt;  &lt;p&gt;The problem occurs if you display a DataPointLabel, eg:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Dim dpl As DataPointLabel     &lt;br /&gt;Set dpl = MSChart1.Plot.SeriesCollection.Item(1).DataPoints.Item(-1).DataPointLabel&lt;/p&gt;    &lt;p&gt;dpl.LocationType = VtChLabelLocationTypeAbovePoint     &lt;br /&gt;dpl.ValueFormat = &amp;quot;0.00&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To work around this, add a manifest to your VB6 application, and copy the manifest and an earlier version of MSChart alongside your exe.&amp;#160; The manifest contents needed are: &lt;/p&gt;  &lt;blockquote&gt;   &lt;div style="font-size:11pt;background:#f1f3f2;color:black;font-family:consolas;"&gt;     &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;standalone&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;yes&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;?&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assembly&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;manifestVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assemblyIdentity&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;&lt;strong&gt;&lt;em&gt;&lt;font color="#ad4ab5"&gt;Project1&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;&lt;strong&gt;&lt;em&gt;&lt;font color="#ad4ab5"&gt;1.0.0.0&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;processorArchitecture&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;X86&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;win32&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;file&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;mschrt20.ocx&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;comClass&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;clsid&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;{3A2B370C-BA0A-11D1-B137-0000F8753F5D}&amp;quot;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;tlbid&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;{65E121D4-0C60-11D2-A9FC-0000F8754DA1}&amp;quot;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;progid&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;MSChart20Lib.MSChart.2&amp;quot;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;description&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;Microsoft Chart Control 6.0 (OLEDB)&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;file&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assembly&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Save that with a .manifest extension, e.g. Project1.exe.manifest.&amp;#160; Make sure you replace the name and version attributes in the assemblyIdentity node with your application’s name and version.&amp;#160; &lt;/p&gt;  &lt;p&gt;Hopefully there will be a fix to fix the fix soon, but in the meanwhile use side-by-side (SxS) COM and an old version of the mschrt20.ocx to work around this new bug.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1664936" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Vista/default.aspx">Vista</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Bug/default.aspx">Bug</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category></item><item><title>So what is a “Library”  ?</title><link>http://msmvps.com/blogs/bill/archive/2009/01/12/so-what-is-a-library.aspx</link><pubDate>Sun, 11 Jan 2009 14:13:41 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1660746</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1660746</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/01/12/so-what-is-a-library.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/blogs/bill/archive/2009/01/11/winfs-it-s-b-a-a-a-ck.aspx" target="_blank"&gt;Earlier I posted&lt;/a&gt; what I hope wetted your appetite for some more info about Libraries in Windows 7.&amp;#160; So&amp;#160; what are libraries you ask//I ask ;) Well I hope the following provides some insight.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;caveat emptor: this is still just my first impressions !&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;A Library is really a view of different “folders”.&amp;#160; Each library is a file, which internally is an xml file.&amp;#160; The default library files are stored in the user’s roaming profile, eg:&lt;/p&gt;  &lt;p&gt;C:\Users\Bill\AppData\Roaming\Microsoft\Windows\Libraries&lt;/p&gt;  &lt;p&gt;This is an example of &lt;/p&gt;  &lt;div style="font-size:11pt;background:#f1f3f2;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;?&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;libraryDescription&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ownerSID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;S-1-5-21-168223323-3520011370-4180941423-1000&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ownerSID&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;3&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;isLibraryPinned&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;-1&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;isLibraryPinned&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;templateInfo&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;folderType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;folderType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;templateInfo&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;propertyStore&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;property&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;HasModifiedLocations&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:#a60000;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:#2d7bd2;"&gt;&amp;quot;boolean&amp;quot;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;![CDATA[&lt;/span&gt;&lt;span style="color:gray;"&gt;-1&lt;/span&gt;&lt;span style="color:blue;"&gt;]]&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;property&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;propertyStore&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;searchConnectorDescriptionList&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;searchConnectorDescription&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;isDefaultSaveLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;-1&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;isDefaultSaveLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;simpleLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;C:\Users\Bill\Documents\Visual Studio 2008\Projects&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serialized&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;…&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serialized&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;simpleLocation&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;searchConnectorDescription&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;searchConnectorDescriptionList&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;libraryDescription&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I omitted the contents of the serialized element for brevity.&lt;/p&gt;  &lt;p&gt;You can programmatically access libraries via the IShellLibrary interface and some shell helper functions.&amp;#160; &lt;/p&gt;  &lt;p&gt;You can add multiple “folders” to these library files.&amp;#160; I say “folders” in quotes, because according to the IShellLibrary::AddFolder documentation, &lt;strong&gt;&lt;em&gt;the object in psiLocation can be a folder or a Search Connector (*.searchconnector-ms) file&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;What’s this mean.&amp;#160; Well I don’t know for sure yet, but it looks to me like Libraries can be a way to aggregate search providers. At the simplest level they provide a view of directories, but they have the potential to provide a view over data from various sources, not just file based.&amp;#160; This of course leads us towards the topic of “Federated Search” (more on that in next episode &amp;lt;g&amp;gt;).&amp;#160; &lt;/p&gt;  &lt;p&gt;So is it WinFS ? Not really. It is not reliant on managed frameworks like the entity framework… it is instead heavily reliant on XML. From the Library file, saved searches, right through to Federated Search which itself is based around RSS style of XML.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Thankfully VB9 rocks when it comes to working with XML !&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1660746" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Xelement : more Value in that Value !!</title><link>http://msmvps.com/blogs/bill/archive/2009/01/05/xelement-more-value-in-that-value.aspx</link><pubDate>Mon, 05 Jan 2009 00:56:32 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1658488</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1658488</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/01/05/xelement-more-value-in-that-value.aspx#comments</comments><description>&lt;p&gt;XML is very flexible and somewhat permissive in what it allows. Consider this piece of XML:&lt;/p&gt;  &lt;div style="font-size:11pt;background:#f1f3f2;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; el = &lt;span style="color:#d6788f;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;item&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#9175bf;"&gt;&lt;strong&gt;some values&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;first&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#9175bf;"&gt;one&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;first&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;second&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#9175bf;"&gt;two&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;second&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;item&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The element named &lt;em&gt;&lt;strong&gt;item&lt;/strong&gt; &lt;/em&gt;can contain both child elements and a text value.&amp;#160; Thankfully this kind of XML is rare: it poses a heap of whitespace formatting issues, and the value itself can reside in any combination of places between the elements, eg:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="font-size:11pt;background:#f1f3f2;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; el = &lt;span style="color:#d6788f;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;item&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#9175bf;"&gt;&lt;strong&gt;some values&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;first&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#9175bf;"&gt;one&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;first&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;span style="color:#9175bf;"&gt;&lt;strong&gt;are&lt;/strong&gt; &lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;second&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#9175bf;"&gt;two&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;second&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#9175bf;"&gt;&lt;strong&gt;in here&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c2844b;"&gt;item&lt;/span&gt;&lt;span style="color:#d6788f;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;How this is interpreted is questionable. You could argue that position needs to be preserved, in which case you’d work with the Nodes property, including both the nodes of type XElement and also XText. Each of the inline values, “some values”, “ are ” and “in here”&amp;#160; are actually XText nodes.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you’re just after the Text, you need to write a helper function.&amp;#160; If you try to use the Value property you get the Value of all nested nodes.&amp;#160; Calling el.Value with the last example will output:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;some valuesone are twoin here&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The extension I slapped together is :&lt;/p&gt;  &lt;div style="font-size:11pt;background:#f1f3f2;color:black;font-family:consolas;"&gt;   &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160; &amp;lt;Extension()&amp;gt; _&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;Public&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;Function&lt;/span&gt; GetText(&lt;span style="color:#3092b1;"&gt;ByVal&lt;/span&gt; el &lt;span style="color:#3092b1;"&gt;As&lt;/span&gt; XElement) &lt;span style="color:#3092b1;"&gt;As&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;String&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;If&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;Not&lt;/span&gt; el.HasElements &lt;span style="color:#3092b1;"&gt;Then&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;Return&lt;/span&gt; el.Value&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;Dim&lt;/span&gt; sb &lt;span style="color:#3092b1;"&gt;As&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;New&lt;/span&gt; StringBuilder&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;For&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;Each&lt;/span&gt; nd &lt;span style="color:#3092b1;"&gt;As&lt;/span&gt; XNode &lt;span style="color:#3092b1;"&gt;In&lt;/span&gt; el.Nodes&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;If&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;TypeOf&lt;/span&gt; nd &lt;span style="color:#3092b1;"&gt;Is&lt;/span&gt; XText &lt;span style="color:#3092b1;"&gt;Then&lt;/span&gt; sb.Append(nd.ToString)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;Next&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;Return&lt;/span&gt; sb.ToString&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160; &lt;span style="color:#3092b1;"&gt;End&lt;/span&gt; &lt;span style="color:#3092b1;"&gt;Function&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;With this the output is :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;some values are in here&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Enjoy :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1658488" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category></item><item><title>XSD’s in Visual Studio: Past, Present and Future.</title><link>http://msmvps.com/blogs/bill/archive/2008/12/30/xsd-s-in-visual-studio-past-present-and-future.aspx</link><pubDate>Tue, 30 Dec 2008 02:51:36 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1658055</guid><dc:creator>bill</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1658055</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2008/12/30/xsd-s-in-visual-studio-past-present-and-future.aspx#comments</comments><description>&amp;#160; &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;When I was going through the &lt;a href="http://www.codeplex.com/SnippetEditor" target="_blank"&gt;snippet editor&lt;/a&gt; code to put it on CodePlex, I wanted to grab a screen shot of the snippet schema.&amp;#160; immediately I was confronted with there being no visual designer for schemas in VS 2008, but the worse part was I could have sworn there use to be.&amp;#160; To clear up that confusion here’s an illustrated history lesson on schema views in Visual Studio.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In earlier versions of Visual Studio the schema designer was a bit like the early dataset designer. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;This is Visual Studio 2005 :&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2005_5F00_xFBMIA.png"&gt;&lt;img title="xsd2005" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="452" alt="xsd2005" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2005_5F00_thumb_5F00_hm6h7A.png" width="620" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It was detailed as far as types and constraints goes but omitted documentation.&amp;#160; With complex schemas it was a mess, but you could hide parts.&lt;/p&gt;  &lt;p&gt;Then in Visual Studio 2008 they decided to get rid of the schema designer completely !!&amp;#160; I’m really not sure the logic on that. There was however a CTP for the new Schema Explorer, and come Visual Studio 2008 Service Pack 1, the schema explorer was included.&amp;#160; (I hope I’ve got that bit of history right)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2008_5F00_B1PwJQ.png"&gt;&lt;img title="xsd2008" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="356" alt="xsd2008" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2008_5F00_thumb_5F00_sG0GEQ.png" width="358" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The Schema explorer gives a nice overview, and provides for navigation but totally lacks real details (&lt;strong&gt;not&lt;/strong&gt; synchronized with the properties window).&amp;#160; Sadly for Visual Studio 2008 that’s as best as it gets, the rest is wading through the actual xsd file as xml.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The first CTP of Visual Studio 10, reveals a new designer that can be used in conjunction with the Schema Explorer.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2010_5F00_n4et6w.png"&gt;&lt;img title="xsd2010" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="476" alt="xsd2010" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2010_5F00_thumb_5F00_WZK35w.png" width="571" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This pretty visual representation is all done in WPF so you can zoom in and out nicely. As well as the ability to easily expand and shrink elements, it’s really nice way to get an overview.&amp;#160; You can even turn on documentation so as you can see any comments from the schema:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2010_5F00_with_5F00_doc_5F00_FMtFMw.png"&gt;&lt;img title="xsd2010_with_doc" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="409" alt="xsd2010_with_doc" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/bill/xsd2010_5F00_with_5F00_doc_5F00_thumb_5F00_2wIj9w.png" width="592" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Although this is very pretty, and a great visual aid, it still doesn’t provide any means to create a schema or edit one… it’s simply a view.&amp;#160;&amp;#160; Some things I’d like to see improved are :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Provide designer &lt;strong&gt;editing&lt;/strong&gt; and creation of schemas&amp;#160; &lt;/li&gt;    &lt;li&gt;have an export to .png feature &lt;/li&gt;    &lt;li&gt;Ability to fully expand comments for all items.&amp;#160; At present only the first two lines are shown and you have to double click on each element to get the comments to fully expand &lt;/li&gt;    &lt;li&gt;did I mention &lt;strong&gt;editing&lt;/strong&gt; ? &lt;/li&gt;    &lt;li&gt;tear-offs would be nice, such that I could then use the width of the screen (eg: Drag the “Header” element from the above picture to the right, and then it expands over there rather than in situ.) &lt;/li&gt;    &lt;li&gt;show restrictions. For example, the SnippetType is restricted to three possible legal values, “Expansion”, “SurroundsWith” and “Refactoring”.&amp;#160; To find that out I have to delve into the xsd. &lt;/li&gt;    &lt;li&gt;Synchronise with Properties window allowing for more detail to be shown and edited in the Properties window&lt;/li&gt;    &lt;li&gt;Provide Copy as Path. The bottom of the screen shows the path of the selected node, but it would be great if you could select to copy that to the clipboard as an XPath. Even cooler if you could choose between XPath, VB XML Axis/Literal sytnax, or XElement syntax (for those poor ol’ C# folks ;) )&lt;/li&gt;    &lt;li&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The Visual Studio 10 stuff looks promising, but still has a long way to go. (did I mention the lack of &lt;strong&gt;editing&lt;/strong&gt; ?)&amp;#160; In the interim it would be nice if there was &lt;strong&gt;&lt;em&gt;something&lt;/em&gt;&lt;/strong&gt;, &lt;em&gt;&lt;strong&gt;anything&lt;/strong&gt;&lt;/em&gt; !&amp;#160; I’m really not sure why the 2005 xsd designer was dropped. Sure some of it was ugly, especially the way it shows things like the string restrictions, but it was and is less ugly than the XML for&amp;#160; that part of the xsd !!&lt;/p&gt;  &lt;p&gt;Visually we have progressed... but what about the &lt;strong&gt;editing&lt;/strong&gt; ??&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1658055" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Snippets/default.aspx">Snippets</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category></item></channel></rss>