<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Nuggets</title>
        <link>http://geekswithblogs.net/dmillard/category/490.aspx</link>
        <description>Useful snippets of information that don't fit into any other category.</description>
        <language>en-GB</language>
        <copyright>Duncan Millard</copyright>
        <managingEditor>duncan.millard@Microsoft.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>*shock* an update!</title>
            <link>http://geekswithblogs.net/dmillard/archive/2006/01/10/65429.aspx</link>
            <description>&lt;P&gt;Well, &lt;A href="http://www.u-g-h.com/"&gt;Owen&lt;/A&gt; has been bugging me to blog... so just to keep him quiet, here's something random...&lt;/P&gt;
&lt;P&gt;If you want to hook up on the XBox 360 then here's my Gamercard!&lt;/P&gt;
&lt;iframe src="http://gamercard.xbox.com/Dunk%20360.card" scrolling="no" frameBorder="0" height="140" width="204"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=65429"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=65429" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/65429.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2006/01/10/65429.aspx</guid>
            <pubDate>Tue, 10 Jan 2006 12:18:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/65429.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2006/01/10/65429.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/65429.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/65429.aspx</trackback:ping>
        </item>
        <item>
            <title>Handy XPath Expression Testbed</title>
            <link>http://geekswithblogs.net/dmillard/archive/2005/01/05/19221.aspx</link>
            <description>&lt;P&gt;Ever wanted to quickly and easily try out different XPath expressions on your documents?&lt;/P&gt;
&lt;P&gt;Just &lt;A href="http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm"&gt;click this link!&lt;/A&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=19221"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=19221" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/19221.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2005/01/05/19221.aspx</guid>
            <pubDate>Wed, 05 Jan 2005 14:17:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/19221.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2005/01/05/19221.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/19221.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/19221.aspx</trackback:ping>
        </item>
        <item>
            <title>Some Overdue Plugging</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/12/13/17416.aspx</link>
            <description>&lt;P&gt;A couple of blog entries that I wanted to highlight, but I've been a bit late blogging on (blame short-sharp-"just do this project before Christmas would you?" type work).&lt;/P&gt;
&lt;P&gt;First, I'm sure you've all seen it by now, but Scott Colestock is continuing his barnstorming work on BizTalk deployment with NAnt. &lt;A href="http://www.traceofthought.net/PermaLink,guid,b9c45d34-85c8-449f-b1a6-deafc2d89084.aspx"&gt;Check it out&lt;/A&gt;. BAT files are &lt;EM&gt;so&lt;/EM&gt; 1980's ;-)&amp;nbsp;If you're not doing something similar in your deployments (either through your own work, or using Scott's) then you are really&amp;nbsp;missing a trick.&lt;/P&gt;
&lt;P&gt;Also,&amp;nbsp;a big plug must go to &lt;A href="http://weblogs.asp.net/cweyer/archive/2004/12/06/275993.aspx"&gt;Thinktecture's new release of WSCF (WsContractFirst).&lt;/A&gt;&amp;nbsp;As soon as I get two minutes to breathe (i.e. after Xmas),&amp;nbsp;I'll&amp;nbsp;take a proper look at this, but for now it looks pretty good.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=17416"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=17416" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/17416.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/12/13/17416.aspx</guid>
            <pubDate>Mon, 13 Dec 2004 14:54:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/17416.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/12/13/17416.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/17416.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/17416.aspx</trackback:ping>
        </item>
        <item>
            <title>XML Namespaces, Prefixes, and elementFormDefault</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/10/20/12935.aspx</link>
            <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note: The GeeksWithBlogs editor seems to keep really messing with the formatting / XML of this post. If you spot any errors, please hit the Contact Me link above and I'll try to wrestle it into submission again :-)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This entry may be useful to people confused by BizTalk's inclination to "ns0" at the drop of a hat :-)&lt;/p&gt;
&lt;p&gt;Someone asked me today why their XML document wasn't validating. They thought that it was because the schema was expecting messages with a default namespace of "uri:my-namespace" but the document they were validating instead defined all the nodes using a prefix of "ns0", with ns0 mapping to uri:my-namespace. &lt;/p&gt;
&lt;p&gt;One of the biggest misunderstandings in XML is namespaces. There's absolutely no difference to an xml parser or to the interpretation of a document whether you use a prefix on every node, or a default namespace. Prefixes are only a syntactic abbreviation. In other words:&lt;/p&gt;
&lt;p dir="ltr"&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;font color="#800000"&gt;mydoc&lt;/font&gt; &lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#0000ff"&gt;    &amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;subnode&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;/&amp;gt;&lt;br /&gt;
&lt;font color="#800000"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;m&lt;/font&gt;ydoc&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;strong&gt;(Default namespace flows into the child - there is no prefix, so it uses the default namespace)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;is identical to: &lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;  &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns0&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&amp;gt;&lt;br /&gt;
    &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns0:subnode&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns1&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
&lt;font color="#800000"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; &lt;br /&gt;
&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(The prefix ns0 maps to uri:my-namespace, and both nodes are marked with ns0)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;and to:&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;font color="#0000ff"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns0&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&amp;gt;&lt;br /&gt;
    &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns1:subnode&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns1&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
&lt;font color="#800000"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; &lt;br /&gt;
&lt;strong&gt;&lt;font color="#000000"&gt;(No default namespace, but ns0 and ns1 both map to uri:my-namespace and hence have identical meaning)&lt;/font&gt;&lt;/strong&gt;
&lt;div&gt;&lt;/div&gt;
 
&lt;div&gt;&lt;/div&gt;
and
&lt;div&gt;&lt;/div&gt;
&lt;font color="#0000ff"&gt;&lt;/font&gt; 
&lt;div&gt;&lt;/div&gt;
&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns0&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#0000ff"&gt;   &amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;subnode&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#800000"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(ns0 is defined on the parent, but we then set a default namespace for this node - and any children, if it had any)&lt;/strong&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000"&gt;In all of the cases above, the namespace of subNode is uri:my-namespace.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000"&gt;It turned out in the end that the problem was that the schema defined the namespace as "uri:my-namespace" but the result document was coming back with a namespace of "uri:my-namespace/" - the trailing slash being all important. Remember folks, namespaces are just strings - a trailing slash may not make a difference to most Internet browsers, but they do in XML Schema. &lt;/font&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;strong&gt;ElementFormDefault&lt;/strong&gt;
&lt;div&gt;&lt;/div&gt;
&lt;font color="#000000"&gt;As a bonus, a little note on elementFormDefault. &lt;/font&gt;
&lt;div&gt;&lt;/div&gt;
&lt;font color="#000000"&gt;  &lt;/font&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/div&gt;
&lt;font color="#000000"&gt;If in your schema you use &lt;strong&gt;elementFormDefault="qualified"&lt;/strong&gt; then you can validate all of the documents above with a schema similar to (pseudo-code):&lt;/font&gt; &lt;font color="#0000ff"&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;&amp;lt;&lt;font color="#800000"&gt;xs:schema&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;targetNamespace&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;elementFormDefault&lt;/font&gt;&lt;font color="#0000ff"&gt;="qualified"&amp;gt;&lt;br /&gt;
&lt;/font&gt;   &amp;lt;&lt;font color="#800000"&gt;xs:element&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;="myDoc"&amp;gt;&lt;br /&gt;
      &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;xs:complexType&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
         &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;xs:sequence&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
            &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;xs:element&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;="subnode"&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;maxOccurs&lt;/font&gt;&lt;font color="#0000ff"&gt;="1"&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;br /&gt;
         &amp;lt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#800000"&gt;xs:sequence&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
      &amp;lt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#800000"&gt;xs:complexType&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
   &amp;lt;/&lt;font color="#800000"&gt;xs:element&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
&amp;lt;/&lt;font color="#800000"&gt;xs:schema&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000"&gt;If you changed the elementFormDefault to "unqualified" then instead it would only look for the root element to be in the namespace, and child elements would be unqualified (in the empty namespace):&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns0&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&amp;gt;&lt;br /&gt;
  &amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;subnode&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt; &lt;br /&gt;
&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#800000"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;
and &lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
 
&lt;div&gt;&lt;/div&gt;
&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns0&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&amp;gt;&lt;br /&gt;
   &amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ns1:subnode&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns1&lt;/font&gt;&lt;font color="#0000ff"&gt;=""/&amp;gt;&lt;br /&gt;
&lt;font color="#800000"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(An explicitly empty prefixed namespace definition)&lt;/strong&gt; &lt;/font&gt;
&lt;div&gt;&lt;/div&gt;
 
&lt;div&gt;&lt;/div&gt;
and
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;font color="#0000ff"&gt;
&lt;p&gt;&amp;lt;&lt;font color="#800000"&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#800000"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;ns0&lt;/font&gt;&lt;font color="#0000ff"&gt;="uri:my-namespace"&amp;gt;&lt;br /&gt;
   &amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;subnode&lt;/font&gt;&lt;font color="#ff00ff"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=""/&amp;gt;&lt;br /&gt;
&lt;font color="#800000"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;ns0:mydoc&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;br /&gt;
&lt;strong&gt;&lt;font color="#000000"&gt;(An explicitly empty default namespace definition for the sub node, and its child nodes if it had any)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;font color="#000000"&gt;I was lucky enough to learn about Namespaces on a &lt;/font&gt;&lt;a href="http://www.developmentor.com/"&gt;&lt;font color="#000000"&gt;Developmentor&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000"&gt; training course run by &lt;/font&gt;&lt;a href="http://www.pluralsight.com/blogs/aaron/default.aspx"&gt;&lt;font color="#000000"&gt;Aaron Skonnard&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000"&gt; ages ago so thanks to him for the foundations of this entry :-)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=12935"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=12935" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/12935.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/10/20/12935.aspx</guid>
            <pubDate>Wed, 20 Oct 2004 17:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/12935.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/10/20/12935.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/12935.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/12935.aspx</trackback:ping>
        </item>
        <item>
            <title>Lack of Updates</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/08/18/9872.aspx</link>
            <description>&lt;P&gt;Sorry it's been quiet recently, but I've been travelling a fair bit, working on customer sites, and wading in to some good old BizTalk 2002 stuff. I'm also&amp;nbsp;3 weeks away from delivering my M.Sc. Thesis that I've been working on part time since January with &lt;A href="http://www.open.ac.uk/"&gt;The Open University&lt;/A&gt;,&amp;nbsp;so my spare time is being sucked into that. Also the really cool side projects I've been doing with BTS2004 I can't really blog about&amp;nbsp;at the moment&amp;nbsp;:-(&lt;/P&gt;
&lt;P&gt;Look soon for a little update to Scott Colestock's NAnt script (anybody know where he's got to?...) and some details about Web Services and BizTalk.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9872"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=9872" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/9872.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/08/18/9872.aspx</guid>
            <pubDate>Wed, 18 Aug 2004 08:42:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/9872.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/08/18/9872.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/9872.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/9872.aspx</trackback:ping>
        </item>
        <item>
            <title>Sourcesafe, Schemas and Encodings</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/07/08/7813.aspx</link>
            <description>&lt;P&gt;Just a quickie that might save you a lot of pain if you are working with schemas and files in UTF8, or that started in UTF8 but you've subsequently changed to unicode... &lt;/P&gt;
&lt;P&gt;If you are getting lots of complaints about the encoding changing when you check in, or finding your files suddenly having Foo at the end of each line, make sure Sourcesafe has your files checked in as Binary rather than Text files. &lt;/P&gt;
&lt;P&gt;To do this, open up the SourceSafe client, right click the newly added schema, and make sure Sourcesafe has flagged it as Binary instead of Text.&lt;/P&gt;
&lt;P&gt;You can also use the Binary_Masks setting in the SRCSAFE.INI or SS.INI files: &lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Binary_Masks = *.XSD&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If you don't do this, you might/will find Sourcesafe&amp;nbsp;corrupting your files. It seems to be worse if&amp;nbsp;you regularly flick between VS.NET Schema editor, BTS schema editor, and XML Spy's schema editor.&lt;/P&gt;
&lt;P&gt;For more, see &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxtsksavingfileswithencoding.asp"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=7813"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=7813" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/7813.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/07/08/7813.aspx</guid>
            <pubDate>Thu, 08 Jul 2004 12:54:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/7813.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/07/08/7813.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/7813.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/7813.aspx</trackback:ping>
        </item>
        <item>
            <title>Solving the BizTalk 2004, Web Services, and the "Underlying Connection was Closed" Problem</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/06/25/7216.aspx</link>
            <description>&lt;P&gt;If you are consuming a remote web service from BizTalk (or ASP.NET) and you are behind a proxy server, you may receive an exception when BizTalk tries to call that web service:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;System.Net.WebException - &lt;/FONT&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;The underlying connection was closed: Unable to connect to the remote server&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#ff0000 size=2&gt;at System.Net.HttpWebRequest.CheckFinalStatus()&lt;BR&gt;&amp;nbsp;&amp;nbsp; at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult)&lt;BR&gt;&amp;nbsp;&amp;nbsp; at System.Net.HttpWebRequest.GetRequestStream()&lt;BR&gt;&amp;nbsp;&amp;nbsp; at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;You can fix this by altering your machine.config file to&amp;nbsp;explicitly&amp;nbsp;hold the proxy details,&amp;nbsp;as described in &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;307220"&gt;KB 307220&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The problem occurs because by default machine.config instructs .NET to&amp;nbsp;use the Internet Exporer proxy settings. The account under which BizTalk (and ASP.NET) is running will not have a loaded user profile, hence there are no Internet Explorer settings available to it. &lt;/P&gt;
&lt;P&gt;Hopefully this fix, plus &lt;A href="http://weblogs.asp.net/jan/archive/2004/01/28/63771.aspx"&gt;Jan Tielen's blog&lt;/A&gt;&amp;nbsp;(repeated at the bottom of &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;819450"&gt;KB 819450&lt;/A&gt;), will solve most of your web service consuming problems.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=7216"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=7216" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/7216.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/06/25/7216.aspx</guid>
            <pubDate>Fri, 25 Jun 2004 11:40:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/7216.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/06/25/7216.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/7216.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/7216.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio .NET XML Parser</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/05/19/5078.aspx</link>
            <description>&lt;P&gt;Today I spent some time experimenting with the xsi:type to allow subclassing in my XML Schemas, as described in &lt;A href="http://www.xml.com/pub/a/2002/07/03/schema_design.html"&gt;"W3C XML Schema Design Patterns: Dealing With Change"&lt;/A&gt; by &lt;A href="http://blogs.msdn.com/dareobasanjo/"&gt;Dare Obasanjo&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Many of the xsi:type examples on the web give the xsi namespace declaration as &lt;I&gt;xmlns:xsi=http://www.&lt;B&gt;w3c&lt;/B&gt;.org/2001/XMLSchema-instance.&lt;/I&gt; 
&lt;P&gt;.NET users look out! If you use this declaration in your XML instance document then it won't validate in VS.NET... you must reference w3.org, not w3c.org.&lt;/P&gt;
&lt;P&gt;The correct declaration for the .NET parser is &lt;I&gt;xmlns:xsi="http://www.&lt;B&gt;w3&lt;/B&gt;.org/2001/XMLSchema-instance"&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;Now, to replace that pulled-out hair...&lt;/P&gt;&lt;/I&gt;&lt;/I&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=5078"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=5078" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/5078.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/05/19/5078.aspx</guid>
            <pubDate>Wed, 19 May 2004 11:55:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/5078.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/05/19/5078.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/5078.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/5078.aspx</trackback:ping>
        </item>
        <item>
            <title>Web-Based SQL Server Enterprise Manager</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/05/19/5074.aspx</link>
            <description>&lt;P&gt;&lt;A href="http://www.aspenterprisemanager.com/"&gt;The ASP.NET Enterprise Manager&lt;/A&gt; is a pretty funky web-based, Open Source version of Enterprise Manager. Think of it as a very good cover version of the original ;-) &lt;/P&gt;
&lt;P&gt;Two immediate benefits are obvious:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;MSDE users have a proper management tool at last&lt;/LI&gt;
&lt;LI&gt;No need to install SQL tools&amp;nbsp;locally&amp;nbsp;or use a Remote Desktop Connection just to administrate SQL Server&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;There's still a reasonable TO-DO list for the tool, but it's pretty usable as-is.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=5074"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=5074" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/5074.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/05/19/5074.aspx</guid>
            <pubDate>Wed, 19 May 2004 07:28:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/5074.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/05/19/5074.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/5074.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/5074.aspx</trackback:ping>
        </item>
        <item>
            <title>Sourcesafe, Virtual Machines, and BizTalk Server 2004</title>
            <link>http://geekswithblogs.net/dmillard/archive/2004/05/14/4884.aspx</link>
            <description>&lt;P&gt;This probably belongs in the "really, really obvious" category - but since it is also really really useful, I'll blog it :-)&lt;/P&gt;
&lt;P&gt;Installing BizTalk 2004 isn't just a "Double click setup.exe" job, so it's nice to create a Virtual Machine containing your one-stop dev environment, containing SQL, VS.NET, BTS, NUnit, and so on. It's also nice to be able to connect up to network resources such as Sourcesafe, the Internet, and so on.&lt;/P&gt;
&lt;P&gt;Now, networks don't like multiple machines with the same name, so if two developers indiscriminately start up the VM with normal networking enabled, it causes problems. Renaming a BTS server is a whole world of pain, but luckily there's a far easier solution - simply configure Virtual PC to use "Shared Networking (NAT)". This sets up a virtual NAT with your host machine as the gateway, meaning the network can't see your VM but your VM can see the network&lt;/P&gt;
&lt;P&gt;To access your main network resources, you then have two options:&lt;/P&gt;
&lt;P&gt;1) Using the "Local Users and Groups" MMC snapin, create an account on your guest OS with the same account name and password as your main domain account. As long as you keep the passwords in sync, you will be able to use domain-authenticated resources (such as Sourcesafe) without any further authentication just by logging in to your VM as that user. (For a discussion of why, see Keith Brown's excellent "Programming Windows Security" book).&lt;/P&gt;
&lt;P&gt;Or&lt;/P&gt;
&lt;P&gt;2) If you don't want to set up a local account, you can authenticate yourself to any server by doing the following:&lt;/P&gt;
&lt;P&gt;- From a command prompt, type &lt;B&gt;net use \\&amp;lt;servername&amp;gt;\ipc$ /user:&amp;lt;your domain name&amp;gt;\&amp;lt;your user name&amp;gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;- Enter your password when prompted&lt;/P&gt;
&lt;P&gt;- You are now domain-authenticated on that server.&lt;/P&gt;
&lt;P&gt;If you use this method to connect to your SourceSafe sever then when you run sourcesafe you will be asked for your username. Just enter your network&amp;nbsp;login name (eg 'dotnetdunk') and you can use SourceSafe as normal.&lt;/P&gt;
&lt;P&gt;Personally, I prefer option 1 ;-)&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4884"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=4884" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dmillard/aggbug/4884.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Duncan Millard</dc:creator>
            <guid>http://geekswithblogs.net/dmillard/archive/2004/05/14/4884.aspx</guid>
            <pubDate>Fri, 14 May 2004 06:57:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dmillard/comments/4884.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dmillard/archive/2004/05/14/4884.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dmillard/comments/commentRss/4884.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dmillard/services/trackbacks/4884.aspx</trackback:ping>
        </item>
    </channel>
</rss>