<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Elegant Code &#187; XML</title>
	<atom:link href="http://elegantcode.com/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Feb 2012 04:40:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Inline XML Code Documentation using Sandcastle</title>
		<link>http://elegantcode.com/2008/04/01/inline-xml-code-documentation-using-sandcastle/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=inline-xml-code-documentation-using-sandcastle</link>
		<comments>http://elegantcode.com/2008/04/01/inline-xml-code-documentation-using-sandcastle/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 05:12:11 +0000</pubDate>
		<dc:creator>Scott Nichols</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Architecture and Design]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source Software]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2008/04/01/inline-xml-code-documentation-using-sandcastle/</guid>
		<description><![CDATA[Is it me, or have many people/projects stopped creating good API documentation via Inline XML comments in their source code.  A couple of years ago when nDoc was in full swing it seemed to be taboo if you did not markup your source code with good XML Comments and generate accompanied API documents. For those [...]]]></description>
			<content:encoded><![CDATA[<p>Is it me, or have many people/projects stopped creating good API documentation via Inline XML comments in their source code.  A couple of years ago when nDoc was in full swing it seemed to be taboo if you did not markup your source code with good XML Comments and generate accompanied API documents.</p>
<p>For those of you who many be asking what is he talking about, Inline XML comments in your source?  Well, that would be (in C#) all those /// comments you see from time to time in source code like so.</p>
<pre style="width: 100%; height: 297px" class="csharpcode"><span class="kwrd">namespace</span> TestNamespace
{
<span class="rem">/// &lt;summary&gt; </span>
<span class="rem">///    Tests whether sandcastle can handle all c# tags as defined at </span>
<span class="rem">///    http://msdn2.microsoft.com/en-us/library/5ast78ax.aspx. </span>
<span class="rem">///    Comments of method "Increment (int step)" include almost all tags. </span>
<span class="rem">///    Method "Swap" is used to test generics tags, such as "typeparam". </span>
<span class="rem">///    &lt;threadsafety static="true" instance="false"/&gt; </span>
<span class="rem">/// &lt;/summary&gt; </span>
[Serializable()]
<span class="kwrd">public</span> <span class="kwrd">class</span> StoredNumber
{  

<span class="rem">/// &lt;summary&gt; </span>
<span class="rem">///    Initializes the stored number class with a starting value. </span>
<span class="rem">/// &lt;/summary&gt; </span>
<span class="kwrd">public</span> StoredNumber( <span class="kwrd">int</span> <span class="kwrd">value</span> )
{ number = <span class="kwrd">value</span>; }</pre>
<style type="text/css">    .csharpcode, .csharpcode pre  {  	font-size: small;  	color: black;  	font-family: consolas, "Courier New", courier, monospace;  	background-color: #ffffff;  	/*white-space: pre;*/  }  .csharpcode pre { margin: 0em; }  .csharpcode .rem { color: #008000; }  .csharpcode .kwrd { color: #0000ff; }  .csharpcode .str { color: #006080; }  .csharpcode .op { color: #0000c0; }  .csharpcode .preproc { color: #cc6633; }  .csharpcode .asp { background-color: #ffff00; }  .csharpcode .html { color: #800000; }  .csharpcode .attr { color: #ff0000; }  .csharpcode .alt   {  	background-color: #f4f4f4;  	width: 100%;  	margin: 0em;  }  .csharpcode .lnum { color: #606060; }</style>
<p>However today, I have noticed that many open source projects and a good share of commercial applications do not bother marking up their source code with XML comments. Maybe one contributing factor is that nDoc died, ok you can still download version 1.3 but it is over two years old now and Microsoft’s answer to this solution Sandcastle is not quite as snazzy as nDoc was i.e. Command-line interface, or maybe propel are just not aware of their options. </p>
<p>The following information outlines what you need to install so you can create proper Inline API (MSDN-style) documentation.  Here is a list of programs you need to install.</p>
<p><strong>Sandcastle:</p>
<p></strong>Microsoft home page for <a href="http://www.sandcastledocs.com/Wiki%20Pages/Home.aspx">Sandcastle</a></p>
<p>You can download it from CodePlex <a href="http://www.codeplex.com/Sandcastle">http://www.codeplex.com/Sandcastle</a></p>
<p>Sandcastle, created by Microsoft, is a free tool used for creating MSDN-style documentation from .NET assemblies and their associated XML comment files. It is command-line based and has no GUI front-end, project management features, or an automated build process</p>
<p><strong>SHFB (Sandcastle Help File Builder):</strong></p>
<p>You can download SHFB from CodePlex <a href="http://www.codeplex.com/SHFB">http://www.codeplex.com/SHFB</a></p>
<p>SHFB is a GUI interface that almost looks identical to the NDoc interface so anyone familiar with NDoc should be quite comfortable using it.  It uses the underlining Sandcastle API to generate an HTML 1.x (.CHM) file, an HTML 2.x (.HxS) file, and/or a web site.</p>
<p>SHFB Requirements</p>
<p>In order to use SHFB you will need the following:</p>
<p>- The .NET 2.0 Framework</p>
<p>- The latest version of Sandcastle. <br />
- The HTML Help Workshop for building HTML Help 1.x (.CHM) help files</p>
<p>- The HTML 2.x compiler for building HTML Help 2.x (.HxS) help files</p>
<p>You can obtain the HTML builders by installing the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=30402623-93ca-479a-867c-04dc45164f5b&amp;displaylang=en">Visual Studio 2008 SDK</a> these are the latest builds.</p>
<p><strong>XML Documentation Comments Guide:</strong></p>
<p>Home page <a href="http://www.dynicity.com/downloads/default.aspx">http://www.dynicity.com/downloads/default.aspx</a></p>
<p>Download the “Windows Installer” at <a href="http://www.dynicity.com/downloads/XMLDocCommentsGuide.exe">http://www.dynicity.com/downloads/XMLDocCommentsGuide.exe</a></p>
<p>This is a help file with a very nice collection of information on how to use XML Comment tags properly in your source code, it has lots of links to some good tutorials and examples. </p>
<p><strong>DocProject for 2008:</strong></p>
<p>Home page from CodePlex for <a href="http://www.codeplex.com/DocProject/Release/ProjectReleases.aspx?ReleaseId=8231">DocProject</a></p>
<p>DocProject drives the Sandcastle help generation tools using the power of Visual Studio 2005/2008 and MSBuild. Choose from various project templates that build compiled help version 1.x or 2.x for all project references. DocProject facilitates the administration and development of project documentation with Sandcastle, allowing you to use the integrated tools of Visual Studio to customize Sandcastle&#8217;s output.</p>
<p><strong>Example Links</strong><strong>:</strong></p>
<p>.NET Documentation Guidelines (version 2.5)</p>
<p><a href="http://p3net.mvps.org/downloads/docs/DocGuidelines.doc">http://p3net.mvps.org/downloads/docs/DocGuidelines.doc</a> </p>
<p>XML Documentation in C# (Anson Horton, C# Compiler Program Manager)</p>
<p><a href="http://cyrino.members.winisp.net/9112006/XMLDocs.doc">http://cyrino.members.winisp.net/9112006/XMLDocs.doc</a></p>
<p>C# XML Documentation (Alan Dean)</p>
<p><a href="http://thoughtpad.net/alan-dean/cs-xml-documentation.html">http://thoughtpad.net/alan-dean/cs-xml-documentation.html</a></p>
<p><a href="http://www.codeproject.com/KB/XML/csharpcodedocumentation.aspx?df=100&amp;forumid=201254&amp;exp=0&amp;select=1237919">C# and XML Source Code Documentation</a></p>
<p><a href="http://www.winnershtriangle.com/w/Articles.XMLCommentsInCSharp.asp">Documenting C# source code with XML Comments</a></p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2008/04/01/inline-xml-code-documentation-using-sandcastle/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Butters Wonders About InfoPath 2007</title>
		<link>http://elegantcode.com/2008/02/18/butters-wonders-about-infopath-2007/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=butters-wonders-about-infopath-2007</link>
		<comments>http://elegantcode.com/2008/02/18/butters-wonders-about-infopath-2007/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 05:37:05 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Architecture and Design]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2008/02/18/butters-wonders-about-infopath-2007/</guid>
		<description><![CDATA[Butters, the wondering dog, is wondering today about her owner&#8217;s use of InfoPath 2007. Her owner has spent several days throwing together an InfoPath application for his employer and is quite happy with his work. Butters thinks that he should be ashamed because he is paid to be an &#8220;architect&#8221; and he has built an [...]]]></description>
			<content:encoded><![CDATA[<p>Butters, the wondering dog, is wondering today about her owner&#8217;s use of InfoPath 2007.<a href="http://elegantcode.com/wp-content/uploads/2008/02/butters-200w.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="180" alt="Butters 200W" src="http://elegantcode.com/wp-content/uploads/2008/02/butters-200w-thumb.jpg" width="240" align="right" border="0"></a> </p>
<p>Her owner has spent several days throwing together an InfoPath application for his employer and is quite happy with his work. Butters thinks that he should be ashamed because he is paid to be an &#8220;architect&#8221; and he has built an application his mother could probably get going in a pinch.</p>
<p>&#8220;But, Butters,&#8221; his owner exclaimed, &#8220;the point is to use the right tool for the job. I am just making a little form that business folks fill out and use to save XML documents. This is exactly what InfoPath is for, and it is so gosh, darned easy.&#8221;</p>
<p>&#8220;Oh,&#8221; replies Butters, &#8220;and I suppose there is validation logic and conditional formatting and other event automation going on in the form?&#8221;</p>
<p>&#8220;Uh, yes. Aren&#8217;t you a dog?&#8221;</p>
<p>&#8220;And I suppose all of those things are written right into the view, which is data bound directly onto the data sources?&#8221;</p>
<p>&#8220;Well, yeah. Aren&#8217;t bulldogs supposed to be one of the dumber breeds?&#8221;</p>
<p>&#8220;And didn&#8217;t you just blog about how easy the new MVC framework from Microsoft will make these things? Do you not promote yourself as one who can spin that code as quickly as clicking your way through the stupid InfoPath designer?&#8221;</p>
<p>&#8220;Yeah, I know, Butters. I am feeling kind of guilty about this.&#8221;</p>
<p>&#8220;You should, InfoPath Boy. You have all these great theories about separation of concerns, thin UI, and data abstraction, yet you solve a coding problem with InfoPath? You, sir, are not worthy of your peers.&#8221;</p>
<p>&#8220;Damn you, Butters. Damn you,&#8221; I replied.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2008/02/18/butters-wonders-about-infopath-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XForms &#8211; The Coolest Little Technology You&#8217;ve Never Heard Of</title>
		<link>http://elegantcode.com/2007/12/15/xforms-the-coolest-client-side-technology-youve-never-heard-of/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xforms-the-coolest-client-side-technology-youve-never-heard-of</link>
		<comments>http://elegantcode.com/2007/12/15/xforms-the-coolest-client-side-technology-youve-never-heard-of/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 06:21:10 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2007/12/15/xforms-the-coolest-client-side-technology-youve-never-heard-of/</guid>
		<description><![CDATA[The reason you have never heard of this sweet technology is explored in this post, Microsoft and XForms, Standards Assassin or Innovator?. &#8220;Standards? Why Bother?&#8221; asked Bill. XForms is a way of expressing data and business logic into an XML instance that you can embed into an XHTML file and run in your favorite browser [...]]]></description>
			<content:encoded><![CDATA[<p>The reason you have never heard of this sweet technology is explored in this post, <a href="http://elegantcode.com/2007/09/12/microsoft-and-xforms-standards-assassin-or-innovator/">Microsoft and XForms, Standards Assassin or Innovator?</a>.</p>
<blockquote><p>&#8220;Standards? Why Bother?&#8221; asked Bill.</p></blockquote>
<p>XForms is a way of expressing data and business logic into an XML instance that you can embed into an XHTML file and run in your favorite browser (sort of). XForms essentially provides a complete MVC programming model complete with events and view binding available within an XML file. Wikipedia describes XForms thusly:</p>
<blockquote><p><em>XForms is an </em><a href="http://en.wikipedia.org/wiki/XML"><em>XML</em></a><em> format for the specification of a data processing model for XML data and </em><a href="http://en.wikipedia.org/wiki/User_interface"><em>user interface</em></a><em>(s) for the XML data, such as </em><a href="http://en.wikipedia.org/wiki/Form_%28web%29"><em>web forms</em></a><em>. XForms was designed to be the next generation of </em><a href="http://en.wikipedia.org/wiki/HTML"><em>HTML</em></a><em> / </em><a href="http://en.wikipedia.org/wiki/XHTML"><em>XHTML</em></a><em> forms, but is generic enough that it can also be used in a standalone manner or with presentation languages other than XHTML to describe a user interface and a set of common </em><a href="http://en.wikipedia.org/wiki/Data"><em>data</em></a><em> manipulation tasks.</em></p></blockquote>
<p>Of course, an XML instance cannot <em>do</em> anything by itself, it merely represents potential for action. In order to execute the business logic and view represented in an XForm you need an XForm execution engine. Significant XForms engines fall into 2 camps, each with their own set of vendors and advocates. The different strategies are browser execution and server execution.</p>
<h3>Browser Execution Engines</h3>
<p>FireFox leads off with native support baked into the browser. This makes a convenient platform for a closed ecosystem like an enterprise document workflow application.</p>
<p>Additionally, plugins are available for IE and other browsers. The leading plugin for IE comes from <a target="_blank" href="http://www.formsplayer.com/">formsPlayer</a>, although <a target="_blank" href="http://www.picoforms.com/">Pico Forms</a> is hot on their trail with a plugin in its 3rd beta.  Pico Forms also has a custom XHTML browser and promotes XForms in the mobile space.</p>
<p>Lastly, two XForms Engine implementations exist (that I know of) in the form of JavaScript libraries.</p>
<p>The first is from the open source project <a target="_blank" href="http://www.formfaces.com/">FormFaces</a> and has not seen active development since January of 2007. FormFaces implemetns much of the XForms specifications and as long as your application doesn&#8217;t need sliders to do range selections, this is viable option. The second is a forthcoming product from the plugin provider, formsPlayer. In exchanges with the CEO of formsPlayer I learned their implementation is close to done. I actually am hoping to see a demo next week.</p>
<p>These JS libraries provide the most realistic option for getting your XForm application to function on the web as no thick app requirements exist on the client.</p>
<p>In order to get the XForms to do something interesting, it is likely you will need to include some other dynamic content technology into your application. I have had some success in including the <a target="_blank" href="http://developer.yahoo.com/yui/">Yahoo UI</a> AJAX library and triggering the AJAX controls using the data model event handlers. A model of this implementation is illustrated below.</p>
<p><a href="http://elegantcode.com/wp-content/uploads/2007/12/image3.png"><img border="0" width="244" src="http://elegantcode.com/wp-content/uploads/2007/12/image-thumb3.png" alt="image" height="182" style="border: 0px" /></a></p>
<p>Click the image for a larger version.</p>
<h3>Server Side Engines</h3>
<p>The idea here is that XForms are parsed and rendered into HTML on the server and subsequent changes to the embedded data model are managed by round tripping to the server. Sure this works, but it kind of takes all the fun out of it.</p>
<p><a target="_blank" href="http://www.ibm.com/developerworks/xml/library/x-xforms/">IBM is a major player</a> here as well as a company called <a target="_blank" href="http://www.orbeon.com/">Orbeon</a> and even <a target="_blank" href="http://labs.adobe.com/wiki/index.php/XForms_Converter">Adobe has skin in the game</a>.</p>
<h3>Now What?</h3>
<p>On November 29th, the W3C working group for XForms promoted XForms 1.1 specification to Release Candidate stage. This is really good news for vendors and developers embracing XForms technology because it represents a commitment to the technology by several leading adopters.</p>
<p>Although this technology is in its infancy, I strongly encourage you to take a look at it the next time you are asked to implement a dynamic forms application within your enterprise. After all, how many times must we reinvent this wheel?</p>
<h3>For More Information</h3>
<p>Some links I have found very useful in learning more about XForms are below:</p>
<ul>
<li><a target="_blank" href="http://www.w3.org/MarkUp/Forms/">The W3C XForms Working Group</a></li>
<li><a href="http://www.w3schools.com/xforms/default.asp" title="XForms Tutorial">XForms Tutorial</a></li>
<li><a target="_blank" href="http://xformsinstitute.com/">XForms Institute</a></li>
</ul>
<p style="display: inline; margin: 0px; padding: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0d3dc3e7-3588-4551-b69d-a00f1c6949c5" class="wlWriterSmartContent">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/XForms">XForms</a>,<a rel="tag" href="http://technorati.com/tags/XML">XML</a></p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2007/12/15/xforms-the-coolest-client-side-technology-youve-never-heard-of/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

