<?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>Irwin Dolobowsky's Blog : Articles &amp; Other Mentions</title><link>http://blogs.msdn.com/irwando/archive/tags/Articles+_2600_+Other+Mentions/default.aspx</link><description>Tags: Articles &amp; Other Mentions</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>SqlXml / MDAC Clarification</title><link>http://blogs.msdn.com/irwando/archive/2005/02/07/368700.aspx</link><pubDate>Mon, 07 Feb 2005 21:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:368700</guid><dc:creator>irwando</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/irwando/comments/368700.aspx</comments><wfw:commentRss>http://blogs.msdn.com/irwando/commentrss.aspx?PostID=368700</wfw:commentRss><description>&lt;p&gt;Apparently there's been a bit of confusion out there lately about the list of deprecated technologies in the &lt;a href="http://msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dnmdac/html/data_mdacroadmap.asp#mdac%20technologies%20road%20map%20old_topic5"&gt;Data Access Road Map&lt;/a&gt;.&amp;nbsp; Both &lt;a href="http://sqljunkies.com/WebLog/ktegels/archive/2005/02/06/7438.aspx"&gt;Ken &lt;/a&gt;and &lt;a href="http://blogs.sqlxml.org/bryantlikes/archive/2005/02/07/2733.aspx"&gt;Bryant &lt;/a&gt;blogged about it, and I just wanted to clarify a few things:&lt;/p&gt; &lt;p&gt;- This article specifically referrs to &lt;a title="" href="http://msdn.microsoft.com/sqlxml" target="_blank"&gt;SqlXml&lt;/a&gt; in MDAC.&amp;nbsp; That's the SqlXmlx.dll file that provides nifty things like Templates and Updategams through SqlOleDB directly.&amp;nbsp; This is actually a fairly old (1.0+) version of our code.&lt;/p&gt; &lt;p&gt;- &lt;a title="" href="http://msdn.microsoft.com/sqlxml" target="_blank"&gt;SqlXml&lt;/a&gt; will be removed from future versions of MDAC, as in MDAC &amp;gt; 2.X.&amp;nbsp; &lt;a title="" href="http://msdn.microsoft.com/sqlxml" target="_blank"&gt;SqlXml&lt;/a&gt; still provies its own OleDb provider that can be used with MDAC or SQLNCLI (in Sql Server 2005).&amp;nbsp; We will remain in the 2.X line.&lt;/p&gt; &lt;p&gt;- Notification Services has a dependency on &lt;a title="" href="http://msdn.microsoft.com/sqlxml" target="_blank"&gt;SqlXml&lt;/a&gt;, but on the stand-alone version that contains Bulkload.&amp;nbsp; The MDAC plans should not affect this at all.&lt;/p&gt; &lt;p&gt;So, &lt;a title="" href="http://msdn.microsoft.com/sqlxml" target="_blank"&gt;SqlXml&lt;/a&gt; will be hanging around for a while, have no fears.&amp;nbsp; Hope that clarifies a few things.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=368700" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/irwando/archive/tags/Articles+_2600_+Other+Mentions/default.aspx">Articles &amp; Other Mentions</category></item><item><title>Two New Articles - Bulkload in .Net and FOR XML in SQL Server 2005</title><link>http://blogs.msdn.com/irwando/archive/2004/06/28/168075.aspx</link><pubDate>Mon, 28 Jun 2004 20:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:168075</guid><dc:creator>irwando</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/irwando/comments/168075.aspx</comments><wfw:commentRss>http://blogs.msdn.com/irwando/commentrss.aspx?PostID=168075</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;There are a few new SqlXml-related articles up on &lt;a title="" href="http://msdn.microsoft.com/xml" target="_blank"&gt;MSDN&lt;/a&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;First we have Amar Nalla's &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnsql90/html/exchsqlxml.asp"&gt;&lt;FONT face=Tahoma size=2&gt;XML to SQL: Using SQLXML Bulkload in the .NET Framework&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;which gives great examples on constructing annotated schemas and using Bulkload within .Net.&amp;nbsp; Amar goes into great detail on how to feed Bulkload with a stream, a process that takes some work when going from .Net through managed interop to Bulkload.&amp;nbsp; If you're using Bulkload within .Net check it out, its a great article and well worth your time to read.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;A little bit older is &lt;a title="" href="http://sqljunkies.com/weblog/mrys/" target="_blank"&gt;Michael Rys&lt;/a&gt;'s article &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/xml/default.aspx?pull=/library/en-us/dnsql90/html/forxml2k5.asp"&gt;&lt;FONT face=Tahoma size=2&gt;What's New in FOR XML in Microsoft SQL Server 2005&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;which discusses enhancements to the FOR XML extensions to T-SQL offered by SQL Server.&amp;nbsp; I've played with the new extensions a bit, not nearly as much as I should have, but am none the less very enthused about them.&amp;nbsp; I think the new PATH syntax will go a long way toward helping people construct complex shapes from there relational table quicker and easier than they could be for with EXPLICIT.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Of course, this brings up the question, if we have this great new PATH mode for making complex XML shapes, why do we need mapping?&amp;nbsp; Its a question I've been asked on more than a few occasions, so&amp;nbsp;here are a few reasons why I still consider mapping a valuable investment:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;STRONG&gt;Composability&lt;/STRONG&gt; - Let's say you want to produce results&amp;nbsp;that&amp;nbsp;conform to the same XML schema&amp;nbsp;from several queries.&amp;nbsp; If you're using FOR XML, each time you have a new query, you have to make sure the output matches your target schema.&amp;nbsp; However, with mapping, you define your output once, and can then query it in many ways, each time only re-writing the query.&amp;nbsp; You can also then allow others to give you queries to execute and you're still guaranteed the same output format - not possible with FOR XML.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;STRONG&gt;Updates&lt;/STRONG&gt; - FOR XML is wonderful for producing XML from your relational data.&amp;nbsp; But what about if you want to update that same data?&amp;nbsp; Now you have to have a stored procedure to do the update and a FOR XML to retrieve the data, and you have to figure out how the data produced by the FOR XML statement maps back to the database.&amp;nbsp; With mapping, we provide both query and update technologies, so you only have to think about one thing - the XML.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;STRONG&gt;Multiple Databases&lt;/STRONG&gt; - This actually relates back to Composability.&amp;nbsp; You have a few different SQL databases, some 2000, some 2005, maybe with the same relational schemas, maybe not.&amp;nbsp; With mapping, you can establish a mapping to each database and then query them using the same XPath queries each time, and let us handle generating the query for that particular database.&amp;nbsp; If you're using FOR XML, you have to write a query for each of those databases and make sure they all resolve to the same schema.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;This isn't to say I don't think FOR XML is useless or anything (though I'm obviously a bit biased toward mapping), quite the contrary.&amp;nbsp; You will get much more control of the queries you're doing by using it.&amp;nbsp; There is just simply more you can do by constructing the query yourself, things SQLXML does not support.&amp;nbsp; You can store those queries inside stored procedures within the database, making your DBA much happier I'm sure.&amp;nbsp; You can leverage your existing SQL knowledge without having to know about mapping and XPath as well.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;So what am I saying here? Which one you use depends on what you consider most valuable.&amp;nbsp; Do you need every last bit of performance and do you need to fine tune every query? Go with FOR XML.&amp;nbsp; Can you give up some control of your queries in exchange for more composability or the ability to update? Mapping is the way to go.&amp;nbsp; You can even mix the two together, don't be afraid!&amp;nbsp; Query all you like with FOR XML, but when you get that 30 meg XML document, look to Bulkload to get it loaded into your database.&amp;nbsp; Its ok, all of the pieces will play very nicely together, I guarantee.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=168075" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/irwando/archive/tags/Articles+_2600_+Other+Mentions/default.aspx">Articles &amp; Other Mentions</category></item><item><title>New Article - Xml Support in Microsoft Sql Server 2005</title><link>http://blogs.msdn.com/irwando/archive/2004/05/21/138318.aspx</link><pubDate>Fri, 21 May 2004 22:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:138318</guid><dc:creator>irwando</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/irwando/comments/138318.aspx</comments><wfw:commentRss>http://blogs.msdn.com/irwando/commentrss.aspx?PostID=138318</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;There's a great new article up on MSDN giving an overview of the XML Support in Sql Server 2005:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma color=#000000 size=2&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/dnsql90/html/sql2k5xml.asp"&gt;XML Support in Microsoft SQL Server 2005&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; How do I know its great?&amp;nbsp; Well, because I contributed of course!&amp;nbsp; Just a little, I did the section on SqlXml.&amp;nbsp; Shankar Pal and &lt;/FONT&gt;&lt;A href="http://weblogs.asp.net/mfussell"&gt;&lt;FONT face=Tahoma size=2&gt;Mark Fussell&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;did most of it.&amp;nbsp; Check it out for a great overview though.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Off to San Deigo tomorrow to get in a little golf before Tech-Ed.&amp;nbsp; Demos and slides are mostly done, hopefully everyone will enjoy my talk.&amp;nbsp; I've ended up with 23 slides, but that also includes a nice bulkload demo and an objects out of the database demo using SqlXml.&amp;nbsp; Hopefully that will be &amp;#8220;Extreme&amp;#8221; enough for everyone.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=138318" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/irwando/archive/tags/Articles+_2600_+Other+Mentions/default.aspx">Articles &amp; Other Mentions</category><category domain="http://blogs.msdn.com/irwando/archive/tags/Tech+Ed+2004/default.aspx">Tech Ed 2004</category></item><item><title>Developer.com on Managed SqlXml Classes</title><link>http://blogs.msdn.com/irwando/archive/2004/05/07/128115.aspx</link><pubDate>Fri, 07 May 2004 20:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:128115</guid><dc:creator>irwando</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/irwando/comments/128115.aspx</comments><wfw:commentRss>http://blogs.msdn.com/irwando/commentrss.aspx?PostID=128115</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Someone recently forwarded me &lt;/FONT&gt;&lt;A href="http://www.developer.com/db/article.php/3341881"&gt;&lt;FONT face=Tahoma size=2&gt;this article&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt; on Developer.com about the SqlXml Managed Classes.&amp;nbsp; It was a nice little article giving a simple introduction on the usage of our managed classes along with a very simple mapping.&amp;nbsp; Certainly enough to get people interested in looking for more info.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;The more interesting part of the aricle for me though was this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&amp;#8220;By now you probably know that SQL Server 2005 (formerly code-named "Yukon") will include tight integration between SQL Server and the .NET Framework, as well as new XML features. But did you know that Microsoft regularly releases a library of .NET and XML add-ons that works with SQL Server 2000? Called SQLXML, this library can help you with quite a few XML-related tasks.&amp;#8221;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;It reminded me of something that has been a topic of discussion around the group here lately - the delta between Sql Server 2000 and Sql Server 2005 XML features is actually quite large, larger than you might think if you consider all of the SqlXml web releases.&amp;nbsp; All of the feature we have worked on and release over the last 5 years will be included in SS2k5, making it a long list of new XML technologies for Sql Server.&amp;nbsp; Consider all we've done since 2000:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Web Release 1:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Updategram&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Bulkload&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;SqlXml 2.0&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Annotated XSD (instead of XDR)&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Client-Side FOR XML&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;SqlXml Managed Classes&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Diffgram Support&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;SqlXml 3.0&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;Web Services Support&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Current release - SqlXml 3.0 SP2&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;ID Propagation Support for Bulkload&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;NULL Support for Web Services&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;That's not a bad list.&amp;nbsp; Hopefully we'll be able to add a few more things to it to really make Sql Server 2005 special.&amp;nbsp; All leading toward my future plan - &amp;#8220;SqlXml - Now includes Sql Server!&amp;#8221;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=128115" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/irwando/archive/tags/Articles+_2600_+Other+Mentions/default.aspx">Articles &amp; Other Mentions</category></item><item><title>XML Templates and Sql Junkies</title><link>http://blogs.msdn.com/irwando/archive/2004/02/18/75917.aspx</link><pubDate>Thu, 19 Feb 2004 00:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:75917</guid><dc:creator>irwando</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/irwando/comments/75917.aspx</comments><wfw:commentRss>http://blogs.msdn.com/irwando/commentrss.aspx?PostID=75917</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;On the front page of SqlJunkies today is an article about XML Templates in SqlXml.&amp;nbsp; In &amp;#8220;&lt;/FONT&gt;&lt;A href="http://www.sqljunkies.com/HowTo/53969753-E560-4923-89AC-0AA3C8ECACDC.scuk"&gt;&lt;FONT face=Tahoma size=2&gt;An Introduction to XML Templates with Sql Server 2000&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;#8221;, &lt;/FONT&gt;&lt;A href="http://www.sqljunkies.com/AuthorDetail.aspx?username=mizwhite"&gt;&lt;FONT face=Tahoma size=2&gt;Denise White&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt; gives a brief overview of what XML Templates are and how to access them over HTTP using our ISAPI extension.&amp;nbsp; There are some good examples in there, mostly using embedded FOR XML queries, and all are download-able from the site.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;For anyone who doesn't know, or doesn't want to read the article quite yet, XML Templates are a great little technology for creating dynamic XML documents that have sections populated with data from Sql Server 2000.&amp;nbsp; Basically, you create a valid XML document however you like, and anywhere you want to have data dynamically filled in, you add a special element within our namespace.&amp;nbsp; This could be a &amp;#8220;sql:query&amp;#8221; element which supports the execution of FOR XML queries and stored procedures, or a &amp;#8220;sql:xpath-query&amp;#8221; element which indicates the contents are a XPath statement to be executed over a Annotated XSD (XML &amp;lt;-&amp;gt; Relational mapping) file.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;There are a variety of ways to execute templates.&amp;nbsp; The article covers executing them through our ISAPI component.&amp;nbsp; However, they can also be executed within applications through ADO / SqlOleDb.&amp;nbsp; Support for templates is built into MDAC 2.7 and 2.8 within the provider.&amp;nbsp; We also ship a set of managed wrappers (SqlXmlCommand) for our native components so the functionality can be accessed within a .Net application.&amp;nbsp; Finally, in the 3.0 release of SqlXml, we added support for accessing these things over web services via our ISAPI component.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;So why is this so useful?&amp;nbsp; Well, think about it a bit.&amp;nbsp; Normally if you wanted to do something like this, you'd have to first create the static XML document, walk to the first place to insert dynamic data, execute a query using a different component, fill in the pieces (possibly having to convert the data to XML), and then repeat for any other areas to be filled in.&amp;nbsp; Instead, we take that burden off of you, allowing you to create these templates that we fill in.&amp;nbsp; As mentioned in the article, templates can be parameterized so that the same template can be used repeatedly.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;One area Denise did not mention was updates with Updategrams.&amp;nbsp;Updategrams are our technology for&amp;nbsp;updating the database via a diff of XML fragments.&amp;nbsp; Our processor interprets the diff as Inserts / Updates&amp;nbsp;/ Deletes against the database depending on elements appearing or not appearing&amp;nbsp;in the before and after images.&amp;nbsp; Updategrams are in fact a part of templates and another tag (&amp;#8221;updg:sync&amp;#8221;) that can be included within a template.&amp;nbsp; So, in a single file, you could make an update to a Sql Server and then select data back out.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;For&amp;nbsp;example. Consider the following template in which I take in several parameters,&amp;nbsp;update the database, and then present the updated data by&amp;nbsp;issuing a&amp;nbsp;XPath against an Annotate schema:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="BACKGROUND: #ffffcc"&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&amp;lt;?xml-stylesheet type="text/xsl" href="updateContact.xsl"?&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;xmlns:updg="urn:schemas-microsoft-com:xml-updategram"&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;sql:header&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="contactID"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="name"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="title"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;sql:param name="email"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="phone"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="fax"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="bname"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="btitle"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="bemail"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="bphone"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:param name="bfax"&amp;gt;&amp;lt;/sql:param&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/sql:header&amp;gt; &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; &amp;lt;updg:sync mapping-schema='Contact.xsd'&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;updg:before&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Contact contactID="$contactID" name="$bname" title="$btitle" email="$bemail" phone="$bphone" fax="$bfax"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/updg:before&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;updg:after&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Contact contactID="$contactID" name="$name" title="$title" email="$email" phone="$phone" fax="$fax"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/updg:after&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/updg:sync&amp;gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp; &amp;lt;UpdatedRecord&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:xpath-query mapping-schema='Contact.xsd'&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /Contact[@contactID=$contactID]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sql:xpath-query&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/UpdatedRecord&amp;gt;&lt;BR&gt;&amp;lt;/ROOT&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Here is the annotated XSD file I'm using with it:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="BACKGROUND: #ffffcc"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;BR&gt;&amp;lt;xs:schema xmlns:xs="&lt;/FONT&gt;&lt;A href="http://www.w3.org/2001/XMLSchema"&gt;&lt;FONT face="Courier New" size=2&gt;http://www.w3.org/2001/XMLSchema&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New" size=2&gt;"&lt;BR&gt;&amp;nbsp; xmlns:sql="urn:schemas-microsoft-com:mapping-schema"&lt;BR&gt;&amp;nbsp; elementFormDefault="qualified"&lt;BR&gt;&amp;nbsp; attributeFormDefault="unqualified"&amp;gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&amp;lt;xs:annotation&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:appinfo&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sql:relationship name="Contacts_Customer" &lt;BR&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; parent="Contacts" &lt;BR&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; parent-key="customerID" &lt;BR&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; child="Customers" &lt;BR&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; child-key="customerID"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xs:appinfo&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/xs:annotation&amp;gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;lt;xs:element name="Contact" sql:relation="Contacts"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="contactID" type="xs:int" use="required" sql:field="contactID"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="customerID" type="xs:int" use="optional" sql:field="customerID"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="companyName" type="xs:string" use="optional" sql:relationship="Contacts_Customer" sql:relation="Customers" sql:field="companyName"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="name" type="xs:string" use="required" sql:field="name"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="title" type="xs:string" use="optional" sql:field="title"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="email" type="xs:string" use="optional" sql:field="email"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="phone" type="xs:string" use="optional" sql:field="phone"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:attribute name="fax" type="xs:string" use="optional" sql:field="fax"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;BR&gt;&amp;lt;/xs:schema&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Sorry for any bad formatting, you may want to copy these into notepad to look at.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Anyway, in the template I've defined a bunch of parameters within the &amp;#8220;sql:header&amp;#8220; block.&amp;nbsp; Depending on how this template is being executed, the parameters are passed in at run time (In Denise's article, over http as part of the address.&amp;nbsp; They could, for example, also be passed in via form post.).&amp;nbsp; The &amp;#8220;updg:sync&amp;#8220; tags indicate an updategram.&amp;nbsp; In this case, because the element will appear in the before and after block with the same key field (contactID), this is an update.&amp;nbsp; Were I to change that so there was a different contact ID in the before and after, it would appear as two different elements, prompting a delete of the element in the before block and an insert of the one in the after.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;After performing the update, I do a simple query against the database to get out the contact I just updated.&amp;nbsp; Within the XML declaration, I also specified an XSL file to execute.&amp;nbsp; This will be done after the query results are returned. Using this, I can build a dynamic website with update capabilities with no coding what-so-ever.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;There are limitations here of course.&amp;nbsp; Given that this is not a programming environment, it does not have the richness of ASP.Net.&amp;nbsp; However, if you're still interested in templates, we do provide a set of managed classes (wrappers around our native code) that could be used within ASP.Net pages to execute templates.&amp;nbsp;This would allow you to use templates for retrieving you XML data from Sql Server while still giving you the full power of ASP.Net and the .Net Framework.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=75917" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/irwando/archive/tags/Articles+_2600_+Other+Mentions/default.aspx">Articles &amp; Other Mentions</category></item></channel></rss>