<?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>Eric White&#039;s Blog</title>
	<atom:link href="http://ericwhite.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://ericwhite.com/blog</link>
	<description>Open XML, SharePoint, and Office</description>
	<lastBuildDate>Wed, 22 Feb 2012 09:54:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Repeating Content in Document Generation System that uses XPath Expressions in Content Controls</title>
		<link>http://ericwhite.com/blog/2012/02/22/repeating-content-in-document-generation-system-that-uses-xpath-expressions-in-content-controls-2/</link>
		<comments>http://ericwhite.com/blog/2012/02/22/repeating-content-in-document-generation-system-that-uses-xpath-expressions-in-content-controls-2/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 09:52:31 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Document Generation Series]]></category>
		<category><![CDATA[Open XML]]></category>
		<category><![CDATA[WordprocessingML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=1646</guid>
		<description><![CDATA[I recently received a very good request for an enhancement to this document generation system.  The request was for a “Repeat” control that works in a similar way to tables, but instead of putting child records into a table, the document generation system generates a repeating section of content. To review, here is what the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently received a very good request for an enhancement to this document generation system.  The request was for a “Repeat” control that works in a similar way to tables, but instead of putting child records into a table, the document generation system generates a repeating section of content.</p>
<p>To review, here is what the template document looked like in the last iteration of this document generation system.  Below, you can see a screen-shot of the template document.  Following that screen-shot, there is a listing of the XML file that contains the data that will be used in the document generation process.</p>
<ul>
<li>The green oval in the template document contains the XPath expression that selects the XML elements that contain the data for each of the documents.  That XPath expression selects the Customer elements in the XML document (also circled with a green oval).</li>
<li>Then, having selected the records for documents, the XPath expression in the blue oval selects the child records for the rows in the table.  The context nodes for that XPath expression are the Customer elements selected by the XPath expression in the green oval.  The selected elements in the XML document are encircled by a blue rounded rectangle.</li>
<li>And then finally, the XPath expressions circled by red select the values to place in the cells in the table.  In the XML document, the first set of nodes selected by those XPath expressions are also circled with a red oval.</li>
</ul>
<p><a href="http://ericwhite.com/blog/wp-content/uploads/2012/02/Template11.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Template1" src="http://ericwhite.com/blog/wp-content/uploads/2012/02/Template1_thumb.png" alt="Template1" width="492" height="416" border="0" /></a></p>
<p><a href="http://ericwhite.com/blog/wp-content/uploads/2012/02/XML1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="XML1" src="http://ericwhite.com/blog/wp-content/uploads/2012/02/XML1_thumb.png" alt="XML1" width="493" height="521" border="0" /></a></p>
<p>The Repeat construct is parallel to that of a table. The following template document is similar in structure to the above template document, except that instead of generating a table, it generates repeating content.</p>
<p><a href="http://ericwhite.com/blog/wp-content/uploads/2012/02/Template2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Template2" src="http://ericwhite.com/blog/wp-content/uploads/2012/02/Template2_thumb.png" alt="Template2" width="499" height="447" border="0" /></a></p>
<p>When generated with the above XML document, the first document in the generated document looks as follows. I have encircled the repeating content with green rounded rectangles:</p>
<p><a href="http://ericwhite.com/blog/wp-content/uploads/2012/02/GenDocs1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="GenDocs1" src="http://ericwhite.com/blog/wp-content/uploads/2012/02/GenDocs1_thumb.png" alt="GenDocs1" width="501" height="375" border="0" /></a></p>
<p>Of course, due to the recursive implementation, you can get really elaborate with this setup. You can, for instance have repeating content within repeating content, or conditional content that contains a table within repeating content, and so on.</p>
<p>Download: <a href="https://skydrive.live.com/redir.aspx?cid=5e385848af211ba9&amp;resid=5E385848AF211BA9!325&amp;parid=5E385848AF211BA9!237">12-02-21-Gen-Docs-XPath</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2012/02/22/repeating-content-in-document-generation-system-that-uses-xpath-expressions-in-content-controls-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Updated Table-of-Content for everything that I&#8217;ve written or recorded</title>
		<link>http://ericwhite.com/blog/2011/12/05/updated-table-of-content-for-everything-that-ive-written-or-recorded/</link>
		<comments>http://ericwhite.com/blog/2011/12/05/updated-table-of-content-for-everything-that-ive-written-or-recorded/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 17:00:59 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=1627</guid>
		<description><![CDATA[Over the last few years, I&#8217;ve written a fair number of blog posts, MSDN articles, OpenXMLDeveloper.org blog posts, and blog posts on my blog at EricWhite.com/blog. In addition, I&#8217;ve recorded over 60 screen-casts. I&#8217;ve assembled links to all of the content from all of the web sites, and aggregated them in the Blog TOC on [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few years, I&#8217;ve written a fair number of blog posts, MSDN articles, OpenXMLDeveloper.org blog posts, and blog posts on my blog at EricWhite.com/blog.  In addition, I&#8217;ve recorded over 60 screen-casts.  I&#8217;ve assembled links to all of the content from all of the web sites, and aggregated them in the Blog TOC on this blog.  I&#8217;ve done my best to make it navigable, including the ability to collapse the long descriptions, so that you can more easly view just the blog post or video titles.  I&#8217;ve categorized it by important keywords, so that a developer working with Word Automation Services or with PowerTools for Open XML can find all relevant content.  You can get to this table-of-content by clicking the <a href="http://ericwhite.com/blog/toc-expanded" title="Blog table-of-contents">Blog Table of Contents</a> link in the blue bar under the header.</p>
<p>I am just about to embark on some interesting writing and screen-casting projects, so wanted to get this blog TOC under control before I started.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/12/05/updated-table-of-content-for-everything-that-ive-written-or-recorded/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New Paper published by Peter O&#8217;Kelly &#8211; Revisiting Open Document Format and Office Open XML: The Quiet Revolution Continues</title>
		<link>http://ericwhite.com/blog/2011/09/13/new-paper-published-by-peter-okelly-revisiting-open-document-format-and-office-open-xml-the-quiet-revolution-continues/</link>
		<comments>http://ericwhite.com/blog/2011/09/13/new-paper-published-by-peter-okelly-revisiting-open-document-format-and-office-open-xml-the-quiet-revolution-continues/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 14:15:07 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[ODF]]></category>
		<category><![CDATA[Open XML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=482</guid>
		<description><![CDATA[Peter O'Kelly has published a new paper evaluating the current state of document formats.]]></description>
			<content:encoded><![CDATA[<p>Three years ago Peter O&#8217;Kelly wrote a paper titled, &#8220;What&#8217;s Up, .DOC? Open XML Formats, OpenDocument Format, and the Revolutionary Implications of XML in Productivity Applications.&#8221; That paper was a part of an industry-wide debate about Open XML and ODF. He has recently published a new paper that analyzes the current state of document formats.</p>
<p>This new paper, <a href="http://www.slideshare.net/pbokelly/open-xml-and-odf-revisited">Revisiting Open Document Format and Office Open XML: The Quiet Revolution Continues</a>, discusses:</p>
<ul>
<li>The business value of standardized, XML based document formats</li>
<li>A brief history of Open XML and ODF</li>
<li>The 2008 Open XML ISO controversy, and the response to Peter&#8217;s &#8220;What&#8217;s Up, .DOC?&#8221; Paper</li>
<li>An assessment of current Open XML and ODF market dynamics</li>
<li>Current standards activity</li>
<li>Projections into the future</li>
</ul>
<p>It is interesting reading for document format wonks.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/09/13/new-paper-published-by-peter-okelly-revisiting-open-document-format-and-office-open-xml-the-quiet-revolution-continues/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Join us for a live web-cast on DocumentBuilder 2.0 on September 7 at 8:00 AM PST</title>
		<link>http://ericwhite.com/blog/2011/09/01/join-us-for-a-live-web-cast-on-documentbuilder-2-0-on-september-7-at-800-am-pst/</link>
		<comments>http://ericwhite.com/blog/2011/09/01/join-us-for-a-live-web-cast-on-documentbuilder-2-0-on-september-7-at-800-am-pst/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 09:05:45 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Open XML]]></category>
		<category><![CDATA[PowerTools]]></category>
		<category><![CDATA[WordprocessingML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=480</guid>
		<description><![CDATA[Announcing Live Web-Cast on DocumentBuilder 2.0 on Sept 7, 8:00 AM PST]]></description>
			<content:encoded><![CDATA[<p>Bob McClellan and I will be hosting a <a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/30/an-exclusive-opportunity-to-talk-with-the-developers-of-document-builder-2-0-and-learn-some-inside-secrets.aspx">live web-cast on Sept 7 at 8:00 AM PST</a>.  We’ll be demoing some new functionality in DocumentBuilder 2.0, discussing the future of PowerTools for Open XML and DocumentBuilder, and taking questions and comments about it.  We’d love to hear your feedback, as well as ideas for enhancements. And if we run out of stuff to talk about with DocumentBuilder, any Open XML topic or question is fair game.</p>
<p>So if, like me, you can’t think of anything more fun than getting online with some other geeks, and discussing interrelated markup, document composability, and the intricacies of Open XML WordprocessingML, please join us!</p>
<p>You can find all the details in <a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/30/an-exclusive-opportunity-to-talk-with-the-developers-of-document-builder-2-0-and-learn-some-inside-secrets.aspx">this blog post at OpenXMLDeveloper.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/09/01/join-us-for-a-live-web-cast-on-documentbuilder-2-0-on-september-7-at-800-am-pst/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Fourth and Final Screen-Cast in Series on Adding/Updating the TOC in OpenXML WordprocessingML Documents</title>
		<link>http://ericwhite.com/blog/2011/08/22/fourth-and-final-screen-cast-in-series-on-addingupdating-the-toc-in-openxml-wordprocessingml-documents/</link>
		<comments>http://ericwhite.com/blog/2011/08/22/fourth-and-final-screen-cast-in-series-on-addingupdating-the-toc-in-openxml-wordprocessingml-documents/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 16:58:57 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Open XML]]></category>
		<category><![CDATA[PowerTools]]></category>
		<category><![CDATA[WordprocessingML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=474</guid>
		<description><![CDATA[Screen-cast: shows how to update an OpenXML WordprocessingML table-of-contents using Word Automation Services.]]></description>
			<content:encoded><![CDATA[<p>Whew!  I finished the fourth and final screen-cast.  In this screen-cast, I show how to use Word Automation Services to repaginate a document and update the table-of-contents.</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3a70365a-c4a7-4dd2-a456-95122a6898d3" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="589" height="331" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/MXcQ47SzdPY?hl=en&amp;hd=1" /><embed type="application/x-shockwave-flash" width="589" height="331" src="http://www.youtube.com/v/MXcQ47SzdPY?hl=en&amp;hd=1"></embed></object></div>
<div style="width: 589px; clear: both; font-size: .8em;">Shows how to use Word Automation Services to populate the TOC</div>
</div>
<p>You can download the code that I present in this video from <a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/22/exploring-tables-of-contents-in-openxml-wordprocessingml-documents-part-4.aspx">OpenXMLDeveloper.org</a>.</p>
<p>Here is the complete list of screen-casts in this series.</p>
<table cellpadding="0" cellspacing="0" border="1" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;">
<p>Link</p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;">
<p>Summary</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/08/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents.aspx">Screen-cast #1</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Explains the markup of tables-of-contents. TOCs use field markup.<br />See <a target="_blank" href="http://ericwhite.com/blog/2011/04/25/deep-dive-into-open-xml-wordprocessingml-fields-and-hyperlinks/">Deep dive into OpenXML Fields</a> for more info.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/10/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-2.aspx">Screen-cast #2</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Presents some sample code that shows how to insert TOC markup into a document.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/15/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-3.aspx">Screen-cast #3</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use Word Automation to update the TOC.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/22/exploring-tables-of-contents-in-openxml-wordprocessingml-documents-part-4.aspx">Screen-cast #4</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use Word Automation Services to update the TOC.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/24/updating-the-toc-in-a-wordprocessingml-document-using-an-autoopen-macro.aspx">Screen-cast #5</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use an AutoOpen macro to update the TOC whenever any document that contains a TOC is opened.</p>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/08/22/fourth-and-final-screen-cast-in-series-on-addingupdating-the-toc-in-openxml-wordprocessingml-documents/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Links &#8211; August 17 2011</title>
		<link>http://ericwhite.com/blog/2011/08/17/links-august-17-2011/</link>
		<comments>http://ericwhite.com/blog/2011/08/17/links-august-17-2011/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 18:09:04 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Open XML]]></category>
		<category><![CDATA[PowerTools]]></category>
		<category><![CDATA[PresentationML]]></category>
		<category><![CDATA[WordprocessingML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=471</guid>
		<description><![CDATA[Links: inserting / updating the TOC in a WordprocessingML document, removing speaker notes from a PresentationML document, and a short and sweet intro to DocumentBuilder 2.0.]]></description>
			<content:encoded><![CDATA[<p>I’ve been posting some new content over at OpenXMLDeveloper.org, and somehow didn’t manage to post the info here.</p>
<p>I’ve posted the third (out of four) screen-casts around inserting / updating tables-of-contents.</p>
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/15/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-3.aspx">Exploring Tables-of-Contents in Open XML WordprocessingML Documents (Part 3)</a></p>
<p>My goal is to get the fourth posted before the end of the week.</p>
<p>Update: Here is the complete list of screen-casts in this series.</p>
<table style="border-collapse: collapse; border: none;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;" valign="top">Link</td>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;" valign="top">Summary</td>
</tr>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top"><a href="/blog/b/openxmldeveloper/archive/2011/08/08/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents.aspx" target="_blank">Screen-cast #1</a></td>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top">Explains the markup of tables-of-contents. TOCs use field markup. See <a href="http://ericwhite.com/blog/2011/04/25/deep-dive-into-open-xml-wordprocessingml-fields-and-hyperlinks/" target="_blank">Deep dive into OpenXML Fields</a> for more info.</td>
</tr>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top"><a href="/blog/b/openxmldeveloper/archive/2011/08/10/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-2.aspx" target="_blank">Screen-cast #2</a></td>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top">Presents some sample code that shows how to insert TOC markup into a document.</td>
</tr>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top"><a href="/blog/b/openxmldeveloper/archive/2011/08/15/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-3.aspx" target="_blank">Screen-cast #3</a></td>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top">Shows how to use Word Automation to update the TOC.</td>
</tr>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top"><a href="/blog/b/openxmldeveloper/archive/2011/08/22/exploring-tables-of-contents-in-openxml-wordprocessingml-documents-part-4.aspx" target="_blank">Screen-cast #4</a></td>
<td style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;" valign="top">Shows how to use Word Automation Services to update the TOC.</td>
</tr>
</tbody>
</table>
<p>The following screen-cast was in response to a specific query in the forums on OpenXMLDeveloper.org.  Even if you don’t care about speaker notes in an Open XML PresentationML document, you might be interested in watching this.  It shows my approach to researching Open XML markup.</p>
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/16/screen-cast-remove-speaker-notes-from-an-open-xml-presentation.aspx">Screen-cast: Remove Speaker Notes from an Open XML Presentation</a></p>
<p>The following screen-cast re-affirmed the truism: it takes more time to make a shorter screen-cast.  The following is 6:40 long.</p>
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/17/new-screen-cast-short-and-sweet-intro-to-documentbuilder-2-0.aspx">New Screen-Cast: Short and Sweet Intro to DocumentBuilder 2.0</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/08/17/links-august-17-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Notes about the Microsoft Public License (Ms-PL)</title>
		<link>http://ericwhite.com/blog/2011/08/16/notes-about-the-microsoft-public-license-ms-pl/</link>
		<comments>http://ericwhite.com/blog/2011/08/16/notes-about-the-microsoft-public-license-ms-pl/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 13:33:31 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Open XML]]></category>
		<category><![CDATA[PowerTools]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=469</guid>
		<description><![CDATA[Some links around the Microsoft Public License (Ms-PL)]]></description>
			<content:encoded><![CDATA[<p>I’ve had a few questions lately about how the Microsoft Public License works.</p>
<p>The text of the Ms-PL: <a href="http://www.microsoft.com/opensource/licenses.mspx">http://www.microsoft.com/opensource/licenses.mspx</a></p>
<p>You can find a page on Microsoft.com that explains the Ms-PL in straightforward terms: <a href="http://www.microsoft.com/resources/sharedsource/communitysourcelicensing.mspx">http://www.microsoft.com/resources/sharedsource/communitysourcelicensing.mspx</a></p>
<p>Here is a StackOverflow.com question/answer page regarding the Ms-PL: <a href="http://stackoverflow.com/questions/1424307/how-does-ms-pl-license-work">http://stackoverflow.com/questions/1424307/how-does-ms-pl-license-work</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/08/16/notes-about-the-microsoft-public-license-ms-pl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Second Screen-Cast in Series on Adding / Updating Tables of Contents in Open XML WordprocessingML Documents</title>
		<link>http://ericwhite.com/blog/2011/08/10/second-screen-cast-in-series-on-adding-updating-tables-of-contents-in-open-xml-wordprocessingml-documents/</link>
		<comments>http://ericwhite.com/blog/2011/08/10/second-screen-cast-in-series-on-adding-updating-tables-of-contents-in-open-xml-wordprocessingml-documents/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 16:58:02 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Open XML]]></category>
		<category><![CDATA[PowerTools]]></category>
		<category><![CDATA[WordprocessingML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=464</guid>
		<description><![CDATA[Second screen-cast in a series on adding / updating tables-of-contents in Open XML WordprocessingML documents.  This screen-cast introduces some code in PowerTools for Open XML that makes it easy to insert a TOC into a document.]]></description>
			<content:encoded><![CDATA[<p>I’ve just published the second screen-cast in this series on updating the TOC of a WordprocessingML document.  In the first screen-cast, I explored the markup around TOCs.  In this second screen-cast, I discuss the markup a bit more, and then introduce some code that makes it easy to add a TOC to a document.  This code will become part of the PowerTools for Open XML project.</p>
<p>As part of the definition of each TOC, you specify a set of switches that Word uses as instructions on how to construct the TOC.  This screen-cast discusses the TOC switches, and shows how to find out more about them from the text of the Open XML standard.</p>
<p>You can find the code that I discuss in this video on <a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/10/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-2.aspx">OpenXMLDeveloper.org</a>.</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3f68b428-1b6b-4add-993e-bfd9671bede5" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="632" height="354" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/qhsVNV8uFUk?hl=en&amp;hd=1" /><embed type="application/x-shockwave-flash" width="632" height="354" src="http://www.youtube.com/v/qhsVNV8uFUk?hl=en&amp;hd=1"></embed></object></div>
<div style="width: 632px; clear: both; font-size: .8em;">Discusses WordprocessingML TOC markup, and introduces some PowerTools for Open XML code that makes it easy to add a TOC to a document.</div>
</div>
<p>Now, back to editing the third screen-cast in this series.  Looks as though there are going to be four.</p>
<p>Here is the complete list of screen-casts in this series.</p>
<table cellpadding="0" cellspacing="0" border="1" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;">
<p>Link</p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;">
<p>Summary</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/08/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents.aspx">Screen-cast #1</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Explains the markup of tables-of-contents. TOCs use field markup.<br />See <a target="_blank" href="http://ericwhite.com/blog/2011/04/25/deep-dive-into-open-xml-wordprocessingml-fields-and-hyperlinks/">Deep dive into OpenXML Fields</a> for more info.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/10/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-2.aspx">Screen-cast #2</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Presents some sample code that shows how to insert TOC markup into a document.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/15/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-3.aspx">Screen-cast #3</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use Word Automation to update the TOC.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/22/exploring-tables-of-contents-in-openxml-wordprocessingml-documents-part-4.aspx">Screen-cast #4</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use Word Automation Services to update the TOC.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/24/updating-the-toc-in-a-wordprocessingml-document-using-an-autoopen-macro.aspx">Screen-cast #5</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use an AutoOpen macro to update the TOC whenever any document that contains a TOC is opened.</p>
</td>
</tr>
</tbody>
</table>
<p>-Eric</p>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/08/10/second-screen-cast-in-series-on-adding-updating-tables-of-contents-in-open-xml-wordprocessingml-documents/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Screen-Cast Series on Tables of Contents in Open XML WordprocessingML Documents</title>
		<link>http://ericwhite.com/blog/2011/08/08/new-screen-cast-series-on-tables-of-contents-in-open-xml-wordprocessingml-documents/</link>
		<comments>http://ericwhite.com/blog/2011/08/08/new-screen-cast-series-on-tables-of-contents-in-open-xml-wordprocessingml-documents/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 16:36:07 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Open XML]]></category>
		<category><![CDATA[PowerTools]]></category>
		<category><![CDATA[WordprocessingML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=462</guid>
		<description><![CDATA[Introduces the first video in a series of screen-casts on tables-of-contents in Open XML WordprocessingML documents.  After generating documents, developers sometimes need to insert an updated TOC at the beginning of the document.]]></description>
			<content:encoded><![CDATA[<p>One issue that has been sorely lacking in content is that of adding / updating TOCs in WordprocessingML documents.  I&#8217;m starting a series of screen-casts around this issue, and I&#8217;ve just posted the first in the series.  The first video walks through the markup for a table of contents.  It explains how the TOC can (but is not required to) be in a content control, and why you would want to put it in a content control.  It discusses how fields in WordprocessingML are used to represent a TOC.  The video dissects field markup, and explains how fields can be nested (and always are nested in the case of a TOC).</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1d3ad895-3294-48c5-854f-0cc4ad783215" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="633" height="356" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/BG8p3Pb7lh4?hl=en&amp;hd=1" /><embed type="application/x-shockwave-flash" width="633" height="356" src="http://www.youtube.com/v/BG8p3Pb7lh4?hl=en&amp;hd=1"></embed></object></div>
<div style="width: 633px; clear: both; font-size: .8em;">Walks through the markup for tables in Open XML WordprocessingML</div>
</div>
<p>In the video, I reference three links.  Here are those links:</p>
<p><a href="http://bit.ly/lTvJ6n">Open XML Package Editor Power Tool for Visual Studio 2010</a></p>
<p><a href="http://bit.ly/oxDnbK">Open XML Markup Simplifier Application</a></p>
<p><a href="http://bit.ly/qOQ6pr">Deep dive into fields in WordprocessingML</a></p>
<p>The next video will be an introduction into some code that I&#8217;ve written for PowerTools for Open XML, which enables you to more easily insert a TOC into a document.</p>
<p>Update: Here is the complete list of screen-casts in this series.</p>
<table cellpadding="0" cellspacing="0" border="1" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;">
<p>Link</p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt; font-weight: bold;">
<p>Summary</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/08/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents.aspx">Screen-cast #1</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Explains the markup of tables-of-contents. TOCs use field markup.<br />See <a target="_blank" href="http://ericwhite.com/blog/2011/04/25/deep-dive-into-open-xml-wordprocessingml-fields-and-hyperlinks/">Deep dive into OpenXML Fields</a> for more info.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/10/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-2.aspx">Screen-cast #2</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Presents some sample code that shows how to insert TOC markup into a document.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/15/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-3.aspx">Screen-cast #3</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use Word Automation to update the TOC.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/22/exploring-tables-of-contents-in-openxml-wordprocessingml-documents-part-4.aspx">Screen-cast #4</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use Word Automation Services to update the TOC.</p>
</td>
</tr>
<tr>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p><a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/08/24/updating-the-toc-in-a-wordprocessingml-document-using-an-autoopen-macro.aspx">Screen-cast #5</a></p>
</td>
<td valign="top" style="border: solid windowtext 1.0pt; padding: 0in 5.4pt 0in 5.4pt;">
<p>Shows how to use an AutoOpen macro to update the TOC whenever any document that contains a TOC is opened.</p>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/08/08/new-screen-cast-series-on-tables-of-contents-in-open-xml-wordprocessingml-documents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing a new class for PowerTools for Open XML: TextReplacer</title>
		<link>http://ericwhite.com/blog/2011/08/04/introducing-a-new-class-for-powertools-for-open-xml-textreplacer/</link>
		<comments>http://ericwhite.com/blog/2011/08/04/introducing-a-new-class-for-powertools-for-open-xml-textreplacer/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 17:16:44 +0000</pubDate>
		<dc:creator>Eric White</dc:creator>
				<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[LINQ to XML]]></category>
		<category><![CDATA[Open XML]]></category>
		<category><![CDATA[PowerTools]]></category>
		<category><![CDATA[WordprocessingML]]></category>

		<guid isPermaLink="false">http://ericwhite.com/blog/?p=459</guid>
		<description><![CDATA[Screen-cast that introduces a new class, TextReplacer, which replaces text in an Open XML WordprocessingML document.]]></description>
			<content:encoded><![CDATA[<p>Recently I wrote some code that implemented <a href="http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/05/12/search-and-replace-text-in-an-open-xml-wordprocessingml-document.aspx">search-and-replace for Open XML WordprocessingML documents</a>.  I wrote that code for an Open XML developer who needed to implement that functionality using XML DOM, although with a different language than C#.  Because XML DOM is standardized, translating the code to another language and another implementation of XML DOM is relatively straightforward.</p>
<p>I want to introduce search-and-replace functionality in a CMDLET in <a href="http://powertools.codeplex.com/">PowerTools for Open XML</a>, but I have been moving PowerTools code away from XmlDocument, so I rewrote the search-and-replace code using LINQ to XML, using a functional transform.  It was an interesting and fun project.  The video below introduces the TextReplacer class, and compares it to the code that I presented that uses XmlDocument.  It is an interesting comparison of imperative code (using XmlDocument) and functional code (using LINQ to XML).</p>
<p>You can download the TextReplacer class from <a href="http://bit.ly/qglvlj">this blog post</a> (in an attachment at the bottom).</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:89ef4775-76bd-4eda-8993-8b9ea164316e" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="676" height="380" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/G4s_BbGJ17E?hl=en&amp;hd=1" /><embed type="application/x-shockwave-flash" width="676" height="380" src="http://www.youtube.com/v/G4s_BbGJ17E?hl=en&amp;hd=1"></embed></object></div>
<div style="width: 676px; clear: both; font-size: .8em;">Introduces TextReplacer, which is LINQ to XML code that replaces text in WordprocessingML documents.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ericwhite.com/blog/2011/08/04/introducing-a-new-class-for-powertools-for-open-xml-textreplacer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.174 seconds -->
<!-- Cached page served by WP-Cache -->

