<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://openxmldeveloper.com/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>OpenXML Developer : .NET (C#, VB, J#, C++/CLI)</title><link>http://openxmldeveloper.com/archive/category/1007.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60526.2668)</generator><item><title>ECMA-376 and ODF1.1 Implementer notes for Office 2007 SP2 released</title><link>http://openxmldeveloper.com/archive/2009/02/11/4060.aspx</link><pubDate>Wed, 11 Feb 2009 19:23:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:4060</guid><dc:creator>jenw</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/4060.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=4060</wfw:commentRss><description>&lt;P&gt;You may have seen that the implementer notes for Office 2007 SP2 for ECMA-376 and ODF1.1 are now available.&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class=MsoNormalTable cellSpacing=0 cellPadding=0&gt;

&lt;TR&gt;
&lt;TD&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;ECMA-376 Implementer Notes for Office 2007 SP2&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;On the ECMA-376&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://www.documentinteropinitiative.org/ECMA-376/reference.aspx"&gt;&lt;FONT color=#000000&gt;Implementer Notes Site&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;&amp;nbsp;you will find detailed information about Office’s support for the &lt;/FONT&gt;&lt;A href="http://www.ecma-international.org/publications/standards/Ecma-376.htm"&gt;&lt;FONT color=#000000&gt;ECMA-376 specification&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;.&amp;nbsp; These notes will help ECMA-376 implementers interoperate with Office by explaining, among other things, Office’s support for optional features, range restrictions for attribute values, and how Office’s functionality maps to Open XML constructs.&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;ODF 1.1 Implementer Notes for Office 2007 SP2&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;On the&amp;nbsp;Open Document Format (ODF) &lt;/FONT&gt;&lt;A title="OASIS ODF 1.1" href="http://www.documentinteropinitiative.org/OASISODF1.1/reference.aspx"&gt;&lt;FONT color=#000000&gt;implementer notes site&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#000000&gt; you will find detailed information about Office’s support for each section of the &lt;/FONT&gt;&lt;A href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#odf11"&gt;&lt;FONT color=#000000&gt;OASIS ODF 1.1 specification&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;. These notes will help promote interoperability by providing details that others can use as reference points for their own applications. For example, they include information about which attributes and elements are supported, as well as details about how Office functionality maps to specific constructs in the ODF specification. For a higher-level overview of Microsoft’s general approach to ODF implementation, see &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/dmahugh/archive/2008/08/05/guiding-principles-for-office-s-odf-implementation.aspx"&gt;&lt;FONT color=#000000&gt;Guiding Principles for Office’s ODF Implementation&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=4060" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1004.aspx">SpreadsheetML</category><category domain="http://openxmldeveloper.com/archive/category/1005.aspx">PresentationML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category><category domain="http://openxmldeveloper.com/archive/category/1014.aspx">DrawingML</category></item><item><title>Open XML SDK V2 CTP available</title><link>http://openxmldeveloper.com/archive/2008/09/16/3702.aspx</link><pubDate>Tue, 16 Sep 2008 19:27:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:3702</guid><dc:creator>ecullins</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/3702.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=3702</wfw:commentRss><description>&lt;P&gt;&lt;B&gt;Open XML SDK V2.&lt;/B&gt; The first CTP of V2 of the Open XML SDK is &lt;A href="http://go.microsoft.com/fwlink/?LinkId=127912"&gt;now available&lt;/A&gt; for download.
&lt;P&gt;This release includes a high-level DOM (document object model) for Open XML development, as well as several tools to streamline Open XML development: 
&lt;UL&gt;
&lt;LI&gt;The &lt;B&gt;OpenXmlDiff&lt;/B&gt; utility identifies differences in the markup in two Open XML documents. 
&lt;LI&gt;The &lt;B&gt;Open XML Class Explorer&lt;/B&gt; helps you determine which strongly typed class to use for a specific task, and includes the text of the relevant section of the ECMA-376 spec for each class. 
&lt;LI&gt;The &lt;B&gt;Open XML Document Reflector&lt;/B&gt; takes a target document as input, and with a few clicks it shows you the C# code needed to generate that document (or a section of it) with the Open XML SDK.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ericwhite/archive/2008/09/06/announcing-the-first-ctp-of-open-xml-sdk-v2.aspx"&gt;See Eric White's blog post for&amp;nbsp;more details&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=3702" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1004.aspx">SpreadsheetML</category><category domain="http://openxmldeveloper.com/archive/category/1005.aspx">PresentationML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category><category domain="http://openxmldeveloper.com/archive/category/1014.aspx">DrawingML</category></item><item><title>Open XML Power Tools released</title><link>http://openxmldeveloper.com/archive/2008/06/12/3351.aspx</link><pubDate>Thu, 12 Jun 2008 14:49:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:3351</guid><dc:creator>dmahugh</dc:creator><slash:comments>3</slash:comments><comments>http://openxmldeveloper.com/comments/3351.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=3351</wfw:commentRss><description>&lt;P&gt;The Open XML Power Tools, an open source project on Codeplex to create PowerShell cmdlets for automating Open XML document management tasks, has been released on Codeplex at &lt;A href="http://www.codeplex.com/PowerTools"&gt;http://www.codeplex.com/PowerTools&lt;/A&gt;. Non-developers can use these cmdlets to build PowerShell scripts that automate processes such as adding a digital signature or watermark to documents, removing metadata, or updating Custom XML parts. The first release includes these cmdlets: &lt;/P&gt;
&lt;P&gt;
&lt;UL&gt;
&lt;LI&gt;Accept-OpenXmlChange&lt;/LI&gt;
&lt;LI&gt;Add-OpenXmlContent&lt;/LI&gt;
&lt;LI&gt;Add-OpenXmlDigitalSignature&lt;/LI&gt;
&lt;LI&gt;Add-OpenXmlDocumentIndex&lt;/LI&gt;
&lt;LI&gt;Add-OpenXmlDocumentTOA&lt;/LI&gt;
&lt;LI&gt;Add-OpenXmlDocumentTOC&lt;/LI&gt;
&lt;LI&gt;Add-OpenXmlDocumentTOF&lt;/LI&gt;
&lt;LI&gt;Add-OpenXmlPicture&lt;/LI&gt;
&lt;LI&gt;Export-OpenXmlSpreadsheet&lt;/LI&gt;
&lt;LI&gt;Export-OpenXmlToHtml&lt;/LI&gt;
&lt;LI&gt;Export-OpenXmlWordprocessing&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlBackground&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlComment&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlCustomXmlData&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlDigitalSignature&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlDocument&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlFooter&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlHeader&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlStyle&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlTheme&lt;/LI&gt;
&lt;LI&gt;Get-OpenXmlWatermark&lt;/LI&gt;
&lt;LI&gt;Lock-OpenXmlDocument&lt;/LI&gt;
&lt;LI&gt;Remove-OpenXmlComment&lt;/LI&gt;
&lt;LI&gt;Remove-OpenXmlDigitalSignature&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlBackground&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlContentFormat&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlContentStyle&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlCustomXmlData&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlFooter&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlHeader&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlStyle&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlTheme&lt;/LI&gt;
&lt;LI&gt;Set-OpenXmlWatermark&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Open XML developers will find these cmdlets useful as source-code samples for all of the above topics, and also as samples of how to use Microsoft's Open XML Formats SDK (which was used for the development of the power tools). For detailed information about the Open XML Power Tools see Eric White's blog post "&lt;A href="http://blogs.msdn.com/ericwhite/archive/2008/06/11/processing-open-xml-documents-server-side-using-powershell.aspx"&gt;Processing Open XML documents server-side using PowerShell&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=3351" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item><item><title>Open XML Formats SDK Version 1 released</title><link>http://openxmldeveloper.com/archive/2008/06/11/3342.aspx</link><pubDate>Wed, 11 Jun 2008 11:16:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:3342</guid><dc:creator>dmahugh</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/3342.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=3342</wfw:commentRss><description>&lt;P&gt;Microsoft announced this week the release of Version 1 of the Open XML Formats SDK, an API that allows .NET developers to read, write, and modify Open XML documents. Follow these links to download the API or get more information: &lt;/P&gt;
&lt;P&gt;
&lt;UL&gt;
&lt;LI&gt;Open XML Formats SDK download link:&lt;BR&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=120908"&gt;http://go.microsoft.com/fwlink/?LinkId=120908&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Open XML Formats SDK documentation:&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb448854.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb448854.aspx&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;MSDN Forum: Open XML Format SDK:&lt;BR&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1647&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1647&amp;amp;SiteID=1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;What's New in the Open XML Format SDK 1.0:&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc471858.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc471858.aspx&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Additional information is available in blog posts by &lt;A href="http://blogs.msdn.com/erikaehrli/archive/2008/06/10/announcing-the-open-xml-format-sdk-1-0.aspx"&gt;Erika Ehrli&lt;/A&gt; and &lt;A href="http://blogs.msdn.com/dmahugh/archive/2008/06/10/open-xml-sdk-version-1-released.aspx"&gt;Doug Mahugh&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=3342" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item><item><title>Microsoft announces Open XML SDK roadmap</title><link>http://openxmldeveloper.com/archive/2008/03/13/OpenXMLSDK.aspx</link><pubDate>Thu, 13 Mar 2008 20:08:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:2868</guid><dc:creator>dmahugh</dc:creator><slash:comments>3</slash:comments><comments>http://openxmldeveloper.com/comments/2868.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=2868</wfw:commentRss><description>&lt;P&gt;Microsoft unveiled today the roadmap for the Open XML SDK that was released last June as a CTP (Community Technology Preview) version. After collecting developer feedback through the CTP release, they've put together a two-phased release plan to get developers a released version of the API quickly (May of this year) and then build on that with additional functionality for a final version in the Office 14 timeframe. &lt;/P&gt;
&lt;P&gt;Links to resources for this article: 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/bb448854.aspx"&gt;Open XML SDK download page&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/bb491088.aspx"&gt;"How To ..." articles for the SDK on MSDN&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.youtube.com/watch?v=t_FYHd234ng"&gt;Video interview with Zeyad Rajabi and Eric White&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/ericwhite/archive/2008/03/14/technical-improvements-in-the-open-xml-sdk.aspx"&gt;Eric White's blog&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/dmahugh"&gt;Doug Mahugh's blog&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG alt="Open XML SDK roadmap: timeline" hspace=0 src="http://www.mahugh.com/images/blog/2008/03/13/timeline.png" border=0&gt; &lt;/P&gt;
&lt;P&gt;The Open XML API will be released in two versions. Version 1.0 will include an updated version of the CTP that was released in June 2007, to be released in April 2008 with a final release of Version 1.0 in May 2008. Version 2.0 will be available as a CTP version this summer, and the final release will be part of the Office 14 wave of products and technologies. (Office "14" is the next major release of Microsoft Office.) &lt;/P&gt;
&lt;P&gt;Both versions will be free downloads on MSDN, available at the &lt;A href="http://msdn2.microsoft.com/en-us/library/bb448854.aspx"&gt;Open XML SDK page&lt;/A&gt;. Version 1.0 will include the following functionality: 
&lt;UL&gt;
&lt;LI&gt;Strongly typed access to parts within Open XML documents (a few typical examples: classes for the main body part or style part of a word-processing document, the workbook and worksheet parts in a spreadsheet document, or the presentation and slide parts in a presentation document) 
&lt;LI&gt;Simple access to the parts within an Open XML document, relative to other existing APIs (example: one line of code to retrieve or replace a part) 
&lt;LI&gt;“Linq-friendly” annotation capabilities, to allow developers to use the SDK with emerging Linq to XML technology (&lt;A href="http://blogs.msdn.com/ericwhite/archive/2008/03/14/technical-improvements-in-the-open-xml-sdk.aspx"&gt;Eric White's blog&lt;/A&gt; has a code sample demonstrating this capability) 
&lt;LI&gt;Consistency and naming changes per feedback from the developer community since the June 2007 CTP version, including adherence to .NET naming conventions 
&lt;LI&gt;The May 2008 RTW (released to web) version will be ready to go live, and developers can build shipping products on it&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Version 2.0 will add the following capabilities: 
&lt;UL&gt;
&lt;LI&gt;Content object model including additional classes and methods for simplifying developer work within parts (example: methods for retrieving or modifying a specific paragraph, style, cell, or shape within a part) 
&lt;LI&gt;Search functionality, for simple searching of content in all document types 
&lt;LI&gt;Validation functionality, to verify that modified or created documents are compliant with the Open XML standard 
&lt;LI&gt;High-level “scenario-based” functionality (examples: creating a document from a template, accepting all revisions in a document) 
&lt;LI&gt;Shared ML functionality (example: classes for DrawingML chart parts and other parts that can appear in multiple document types)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The functionality in this roadmap was driven by feedback received from developers since the CTP release last June. A recurring theme was that developers want more tools to help edit and manipulate the underlying XML within the parts, and this is reflected in new methods that will be included in the content object model, as well as Linq-related changes as mentioned above. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.youtube.com/watch?v=t_FYHd234ng"&gt;&lt;IMG alt="" hspace=10 src="http://www.mahugh.com/images/blog/2008/03/13/zeyad.jpg" align=right border=0&gt;&lt;/A&gt; For more detailed information about what's coming in the Open XML SDK, see Jean-Christophe Cimetiere's &lt;A href="http://www.youtube.com/watch?v=t_FYHd234ng"&gt;video interview with Zeyad Rajabi and Eric White&lt;/A&gt; where they discuss the changes in the SDK and show some of the details of how it will work. &lt;/P&gt;
&lt;P&gt;To download the latest version of the SDK or for links to more information, see the &lt;A href="http://msdn2.microsoft.com/en-us/library/bb448854.aspx"&gt;Open XML SDK page&lt;/A&gt; on MSDN. &lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=2868" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1004.aspx">SpreadsheetML</category><category domain="http://openxmldeveloper.com/archive/category/1005.aspx">PresentationML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category><category domain="http://openxmldeveloper.com/archive/category/1014.aspx">DrawingML</category></item><item><title>Developer workshop videos</title><link>http://openxmldeveloper.com/archive/2007/08/29/2066.aspx</link><pubDate>Wed, 29 Aug 2007 16:04:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:2066</guid><dc:creator>dmahugh</dc:creator><slash:comments>1</slash:comments><comments>http://openxmldeveloper.com/comments/2066.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=2066</wfw:commentRss><description>&lt;P&gt;MSDN has published a comprehensive set of &lt;A href="http://msdn2.microsoft.com/en-us/office/bb738430.aspx"&gt;videos of a 2-day Open XML developer workshop&lt;/A&gt;. These videos cover the content that was posted on OpenXMLDeveloper recently &lt;A HREF="/articles/DeveloperWorkshopContent.aspx"&gt;here&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;The instructors for this workshop were Doug Mahugh of Microsoft and Chris Predeek of the &lt;A href="http://www.tedpattison.net/"&gt;Ted Pattison Group&lt;/A&gt;, and the workshop was sponsored by &lt;A href="http://www.mindjet.com/"&gt;Mindjet&lt;/A&gt; and took place at their office in San Francisco on June 18-19, 2007. &lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=2066" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1004.aspx">SpreadsheetML</category><category domain="http://openxmldeveloper.com/archive/category/1005.aspx">PresentationML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category><category domain="http://openxmldeveloper.com/archive/category/1014.aspx">DrawingML</category></item><item><title>Open XML development videos</title><link>http://openxmldeveloper.com/archive/2007/03/19/1334.aspx</link><pubDate>Mon, 19 Mar 2007 19:14:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:1334</guid><dc:creator>dmahugh</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/1334.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=1334</wfw:commentRss><description>&lt;P&gt;Several of the most active contributors to OpenXmlDeveloper were in Redmond last week for the MVP Summit and an Open XML workshop, so Doug Mahugh interviewed them on some Open XML development topics. The videos are up on Channel 9 at the links included below.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=292715"&gt;Open-source Open XML API for Java&lt;/A&gt;&lt;BR&gt;Julien Chable demonstrates his OPENXML4J project, which is a continuation of the work described in his article on OpenXmlDeveloper &lt;A HREF="/articles/OpenXMLandJava.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=292735"&gt;Package Explorer for Open XML&lt;/A&gt;&lt;BR&gt;Wouter Van Vugt talks about the latest release of his Package Explorer tool, which was originally covered on OpenXmlDeveloper &lt;A HREF="/articles/261.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=292752"&gt;Linux/Java interoperability with Open XML&lt;/A&gt;&lt;BR&gt;Sanjay Kumar and Datta Kulkarni of Sonata Software describe how Open XML can be used from a Linux environment, building on the techniques covered on OpenXmlDeveloper &lt;A HREF="/articles/JavaWordProcessingML.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=1334" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category><category domain="http://openxmldeveloper.com/archive/category/1008.aspx">Java</category></item><item><title>Generating Dynamic OpenXML Docx Files</title><link>http://openxmldeveloper.com/archive/2007/03/07/1302.aspx</link><pubDate>Wed, 07 Mar 2007 20:08:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:1302</guid><dc:creator>dmahugh</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/1302.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=1302</wfw:commentRss><description>&lt;P&gt;Mohammad Nour El-din Marwan of Cairo University's Computer Engineering Department has posted a &lt;A href="http://mnour.blogspot.com/2007/02/creating-dynamic-docx-files.html"&gt;detailed how-to article&lt;/A&gt; that covers the design of a set of classes for working with Open XML documents. His approach reflects a common business need: set up a standardized look and feel in a template, which can be used as a starting point for generating dynamic data-driven documents that all share common formatting characteristics.&lt;/P&gt;
&lt;P&gt;The article includes many diagrams that clearly explain the architecture used. Definitely worth a look if you're designing software to generate dynamic Open XML documents.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://mnour.blogspot.com/2007/02/creating-dynamic-docx-files.html"&gt;... more information ...&lt;/A&gt;&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=1302" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item><item><title>Updated Open XML code snippets for Visual Studio</title><link>http://openxmldeveloper.com/archive/2006/11/28/884.aspx</link><pubDate>Tue, 28 Nov 2006 20:39:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:884</guid><dc:creator>dmahugh</dc:creator><slash:comments>1</slash:comments><comments>http://openxmldeveloper.com/comments/884.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=884</wfw:commentRss><description>&lt;P&gt;Microsoft's Visual Studio code snippets for the System.IO.Packaging API have been updated for the final versions of the Office Open XML schemas and the RTM versions of Office and the .NET 3.0 Framework.&lt;/P&gt;
&lt;P&gt;The snippets are available in both C# and Visual Basic, and you can download the latest version of them from &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8d46c01f-e3f6-4069-869d-90b8b096b556&amp;amp;displaylang=en"&gt;this page on MSDN&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=884" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item><item><title>Content Control Toolkit</title><link>http://openxmldeveloper.com/archive/2006/11/21/ContentControlToolkit.aspx</link><pubDate>Tue, 21 Nov 2006 13:33:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:853</guid><dc:creator>dmahugh</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/853.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=853</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://www.mahugh.com/openxmldeveloper/ContentControlToolkit.png"&gt;&lt;IMG alt="Content Control Toolkit screenshot" hspace=10 src="http://www.mahugh.com/openxmldeveloper/ContentControlToolkit2.png" align=right border=0&gt;&lt;/A&gt; If you're working on Open XML solutions that use Word 2007 content controls and bind them to nodes in your custom XML data part, then you &lt;I&gt;need&lt;/I&gt; this tool. It provides a simple graphical view of the content controls and custom XML nodes in a document, and you can bind a node to a control by simple drag&amp;amp;drop operations. Click on the screen shot here to see how it works.&lt;/P&gt;
&lt;P&gt;It's a great way to manually create a data-bound document, and it's also a good developer tool for learning about the markup you need for binding controls to data. You can generate well-formed data-binding markup with a few clicks, then look at how it works and use the same markup in your custom solution as needed.&lt;/P&gt;
&lt;P&gt;The tool, developed by Microsoft's Matt Scott, is available as a &lt;A href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=dbe"&gt;Codeplex project&lt;/A&gt;, and there's also a &lt;A href="http://channel9.msdn.com/Showpost.aspx?postid=254520"&gt;video on Channel 9&lt;/A&gt; where Matt goes through the design and development of the tool and demonstrates its use.&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=853" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item><item><title>Open XML developers at TechEd</title><link>http://openxmldeveloper.com/archive/2006/11/15/TechEd2006.aspx</link><pubDate>Wed, 15 Nov 2006 19:24:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:833</guid><dc:creator>dmahugh</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/833.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=833</wfw:commentRss><description>&lt;A href="http://www.mahugh.com/openxmldeveloper/TechEdBarcelona2.jpg"&gt;&lt;IMG alt="11/09/06: Peter Koen presents a session on Open XML at TechEd/Barcelona" hspace=10 src="http://www.mahugh.com/openxmldeveloper/TechEdBarcelona3.jpg" align=right border=0&gt;&lt;/A&gt; 
&lt;P&gt;&lt;EM&gt;November 10, 2006.&lt;/EM&gt;&amp;nbsp; Several sessions on Open XML development were presentated at the Microsoft &lt;A href="http://www.mseventseurope.com/TechEd/06/pre/defaultdev.aspx"&gt;TechEd&lt;/A&gt; conference in Barcelona this week. The photo here shows Peter Koen's Thursday session on Open XML architecture.&lt;/P&gt;
&lt;P&gt;This week's announcements of the 2007 Microsoft Office System being released to manufacturing and the release of the .NET 3.0 Framework (see below) were&amp;nbsp;big&amp;nbsp;news for Open XML developers.&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=833" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category><category domain="http://openxmldeveloper.com/archive/category/1013.aspx">Windows (Win32, VB6, VFP, other)</category></item><item><title>diffopc: a DIFF utility for Open XML</title><link>http://openxmldeveloper.com/archive/2006/10/17/743.aspx</link><pubDate>Wed, 18 Oct 2006 02:16:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:743</guid><dc:creator>dmahugh</dc:creator><slash:comments>2</slash:comments><comments>http://openxmldeveloper.com/comments/743.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=743</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://www.arstdesign.com/articles/diffopc.html"&gt;&lt;IMG alt="" hspace=10 src="http://www.arstdesign.com/articles/diffopc0.jpg" align=right border=0&gt;&lt;/A&gt;If you're doing much Open XML development, you probably sometimes need to compare two versions of a document and look closely at the differences. Stephane Rodriguez's diffopc tool is a utility program that makes short work of this sort of a task.&lt;/P&gt;
&lt;P&gt;Diffopc takes any two OPC (Open Packaging Convention) files as inputs (e.g., Open XML documents or XPS documents), and displayes a well-organized summary of the differences in a web browser. You can look at the parts that have changed, or drill down into a part and see the specific differences in the XML markup.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.arstdesign.com/articles/diffopc.html"&gt;Download or read more about diffopc here.&lt;/A&gt;&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=743" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item><item><title>MSDN Articles on Open XML and Related Topics</title><link>http://openxmldeveloper.com/archive/2006/08/31/599.aspx</link><pubDate>Thu, 31 Aug 2006 19:32:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:599</guid><dc:creator>dmahugh</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/599.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=599</wfw:commentRss><description>&lt;P&gt;The 2007 Microsoft Office system will use the Open XML file formats as their default format, and Microsoft has started to publish white papers, code samples, and other Open XML content for developers.&lt;/P&gt;
&lt;P&gt;The following is an overview of some of the Open XML information that is currently available on MSDN, including general XML resources, information about Open XML development, and documentation of Microsoft schemas that can be used with Open XML due to its flexible support for custom schemas.&amp;nbsp; Watch for more of this type of content in the months ahead.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms771890.aspx"&gt;Walkthrough: Word 2007 XML Format&lt;/A&gt;. This article by Erika Ehrli covers the basics of the packaging convention and then gets into the details of how Word uses Open XML: which parts are included and how they're related, how the custom XML data store works, and an example of how to create a typical WordprocessingML document. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=15805380-f2c0-4b80-9ad1-2cb0c300aef9&amp;amp;displaylang=en"&gt;2007 Office System: XML Schema Reference&lt;/A&gt;. Documentation in CHM and HTML format for the schemas used in the 2007 Microsoft Office system, including schemas that are not part of the Open XML specification (as used in Outlook 2007, OneNote 2007, and Visio 2007). &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=8d46c01f-e3f6-4069-869d-90b8b096b556&amp;amp;displaylang=en"&gt;2007 Office System Sample: Open XML File Format Code Snippets for Visual Studio 2005&lt;/A&gt;. These are the snippets that were covered on OpenXmlDeveloper.org &lt;A HREF="/articles/VS_code_snippets.aspx"&gt;here&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/xmlteam/"&gt;Microsoft XML Team's WebLog&lt;/A&gt;. Microsoft's XML team covers a variety of XML topics. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=72040"&gt;Introducing the Office (2007) Open XML File Formats&lt;/A&gt;. Frank Rice reviews some of the most common Open XML development scenarios, and describes the benefits of Open XML in plain English. He also covers the various file formats supported by Office, how to implement Office's CustomUI functionality, and related topics. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/office/preview/itpro/filefaq.mspx"&gt;Microsoft Office Open XML Formats Frequently Asked Questions&lt;/A&gt;. Answers to dozens of questions about Open XML and how it has been implemented in the 2007 Microsoft Office system. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/office/xml/"&gt;XML in Office Developer Portal&lt;/A&gt;. A portal that aggregates many online resources for developers working with XML in Office, including both Open XML resources and other types of XML resources. &lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=599" width="1" height="1"&gt;</description><category domain="http://openxmldeveloper.com/archive/category/1002.aspx">Open Packaging Convention</category><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1004.aspx">SpreadsheetML</category><category domain="http://openxmldeveloper.com/archive/category/1005.aspx">PresentationML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category><category domain="http://openxmldeveloper.com/archive/category/1010.aspx">Other</category><category domain="http://openxmldeveloper.com/archive/category/1013.aspx">Windows (Win32, VB6, VFP, other)</category></item><item><title>Creating a PresentationML Document through a browser interface</title><link>http://openxmldeveloper.com/archive/2006/08/24/559.aspx</link><pubDate>Thu, 24 Aug 2006 10:44:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:559</guid><dc:creator>SanjayKumarM</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/559.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=559</wfw:commentRss><description>&lt;P&gt;&lt;I&gt;Article by: MuthuKumar Arjunan and Vijayeta of Sonata Software Ltd.&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;This article explores the interoperable potential of the Open XML file formats. We will show how a simple browser on any client machine can create a PresentationML document (PPTX) on a web server. The browser provides the GUI, and the server software uses the .NET 3.0 System.IO.Packaging API to create the document.&lt;/P&gt;
&lt;P&gt;The user can create slides, then drag and position them in his preferred order. Later he can create a downloadable power point file which comprises the slides he created, in the order he has specified.&lt;/P&gt;
&lt;P&gt;The web page consists of text boxes to edit the contents of slide document to be created. When the user drags the slide, the vertical position of the slide is tracked and displayed in the text box on the screen, and another text box keeps the count of slides created.&lt;/P&gt;
&lt;P&gt;The user is also provided with an editable text box to post the URL of the server, as shown:&lt;/P&gt;&lt;A HREF="/photos/sample/picture558.aspx" target=_blank&gt;&lt;IMG src="/photos/sample/images/558/497x480.aspx" border=0&gt;&lt;/A&gt; 
&lt;P&gt;The controls used here are HTML controls and the events are handled using Java Script.&lt;/P&gt;
&lt;P&gt;The text boxes holding the slide contents can also be docked in the screen. For example, the first text box can be placed after the second text box, and the Presentation Document is created in the same slide order.&lt;/P&gt;
&lt;P&gt;When the user is ready with the data that would form a presentation document,he clicks on the “Create PPT file” button. On-Click of the “Create PPT file”, the slide position, the Title and the SubTitles of each of the slides are sent to the server as an XML document, as shown:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&lt;PRE&gt;Sending ...
&amp;lt;ROOT&amp;gt;
  &amp;lt;SLIDE Content="Enter the Content for Slide: 1" Header="Enter Slide Header:  1" pos="126" /&amp;gt;
  &amp;lt;SLIDE Content="Enter the Content for Slide: 2" Header="Enter Slide Header: 2" pos="270" /&amp;gt;
&amp;lt;/ROOT&amp;gt;
&lt;/PRE&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;At the server side, the XML document is processed, where in the Header and Content are separately stored and slides are created in the same order as the user wants, using .NET 3.0 System.IO.Packaging API.&lt;/P&gt;
&lt;P&gt;The Presentation Document created is assigned a unique number series as name. The Server in turn returns a hyperlink of the URL from where the document can be downloaded to the local drive. On click of the link, the user is prompted to save it to the disk or open the document.&lt;/P&gt;
&lt;P&gt;See the attached file for complete source code for the sample shown in this article.&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=559" width="1" height="1"&gt;</description><enclosure url="http://openxmldeveloper.com/attachment/559.ashx" length="144862" type="application/x-zip-compressed" /><category domain="http://openxmldeveloper.com/archive/category/1005.aspx">PresentationML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item><item><title>Adding Header - Footer to any WordprocessingML</title><link>http://openxmldeveloper.com/archive/2006/08/03/443.aspx</link><pubDate>Thu, 03 Aug 2006 09:36:00 GMT</pubDate><guid isPermaLink="false">1ff61f26-0981-41c7-ad52-ff725e9b1da8:443</guid><dc:creator>SanjayKumarM</dc:creator><slash:comments>0</slash:comments><comments>http://openxmldeveloper.com/comments/443.aspx</comments><wfw:commentRss>http://openxmldeveloper.com/commentrss.aspx?PostID=443</wfw:commentRss><description>&lt;P&gt;Author: Vijayeta Tilak, Sonata Software Limited&lt;/P&gt;
&lt;P&gt;This article describes how a footer or header can be programmatically added to a word document from a .NET application using the System.IO.Packaging API.&lt;/P&gt;
&lt;P&gt;A WordprocessingML document may contain a part named footerX.xml, which holds the footer text and the page number. This part is included in the document by a footer reference tag that includes a relationship to the footer part from within the document.xml "start part" as shown here:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;w:sectPr w:rsidR&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;00A352BA&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;"&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; &lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;w:pgSz&lt;/SPAN&gt; &lt;SPAN&gt;w:w&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;12240&lt;/B&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; w:h&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;15840&lt;/B&gt;&lt;SPAN&gt;" /&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; &lt;SPAN&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; &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;w:footerReference&lt;/SPAN&gt; &lt;SPAN&gt;w:type&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;SPAN&gt;default&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; r:id&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;SPAN&gt;rId8&lt;/SPAN&gt;&lt;SPAN&gt;" /&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; &lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;w:pgMar&lt;/SPAN&gt; &lt;SPAN&gt;w:top&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;1440&lt;/B&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; w:right&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;1440&lt;/B&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; w:bottom&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;1440&lt;/B&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; w:left&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;1440&lt;/B&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&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; &lt;/SPAN&gt;w:header&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;720&lt;/B&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; w:footer&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;720&lt;/B&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; w:gutter&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;0&lt;/B&gt;&lt;SPAN&gt;" /&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; &lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;w:cols&lt;/SPAN&gt; &lt;SPAN&gt;w:space&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;720&lt;/B&gt;&lt;SPAN&gt;" /&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; &lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;w:docGrid&lt;/SPAN&gt; &lt;SPAN&gt;w:linePitch&lt;/SPAN&gt;&lt;SPAN&gt;="&lt;/SPAN&gt;&lt;B&gt;360&lt;/B&gt;&lt;SPAN&gt;" /&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; &lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;w:sectPr&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;The relationship ID must be unique within the document.&lt;/P&gt;
&lt;P&gt;The footerX.xml part has a node that specifies the style to be used to format the footer:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;FONT face=Arial color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=t1&gt;&lt;SPAN&gt;&lt;FONT color=#990000&gt;w:pStyle&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN class=t1&gt;&lt;FONT color=#990000&gt;w:val&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;Footer&lt;/B&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;A content type for the footer must also be included in the package, as shown here:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=t1&gt;&lt;SPAN&gt;&lt;FONT color=#990000&gt;Override&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN class=t1&gt;&lt;FONT color=#990000&gt;PartName&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;/word/footer1.xml&lt;/B&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=t1&gt;&lt;FONT color=#990000&gt; ContentType&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml&lt;/B&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;A part relationship must also be created, using the same relationship ID as was used in Document.xml:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=t1&gt;&lt;SPAN&gt;&lt;FONT color=#990000&gt;Relationship&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN class=t1&gt;&lt;FONT color=#990000&gt;Type&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer&lt;/B&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=t1&gt;&lt;FONT color=#990000&gt; Target&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;/word/footer1.xml&lt;/B&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=t1&gt;&lt;FONT color=#990000&gt; Id&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;rId8&lt;/B&gt;&lt;SPAN class=m1&gt;&lt;FONT color=#0000ff&gt;" /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;FONT face=Arial&gt;The UI would consist of a single text box accepting the footer text from the user, which would be included the document the user selects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;FONT face=Arial&gt;Programmatically, a footer file is created with the text the user had keyed in.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;A part of code&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN&gt;(from &lt;/SPAN&gt;&lt;/FONT&gt;&lt;A HREF="/archive/2006/06/17/297.aspx"&gt;&lt;SPAN&gt;&lt;U&gt;&lt;FONT face=Arial&gt;.NET Code Snippets for Open XML Developers&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;FONT face=Arial&gt;) would then open the package and include the footer file, create Part Relationship.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;public&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt; WDAddHeaderFooter(&lt;SPAN&gt;string&lt;/SPAN&gt; docName, &lt;SPAN&gt;XmlDocument&lt;/SPAN&gt; Doc,&lt;SPAN&gt;bool&lt;/SPAN&gt; h)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Given a document name, and a XML document&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;string&lt;/SPAN&gt; documentRelationshipType=&lt;SPAN&gt;"http://schemas.openxmlformats.org /officeDocument/2006/ relationships/officeDocument"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;const&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;string&lt;/SPAN&gt; wordmlNamespace = &lt;SPAN&gt;"http://schemas.openxmlformats.org /wordprocessingml/2006/3/main"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;const&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;string&lt;/SPAN&gt; relationshipNamespace =&lt;SPAN&gt;"http://schemas.openxmlformats.org /officeDocument/2006/relationships"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;PackagePart&lt;/SPAN&gt; documentPart = &lt;SPAN&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;Uri&lt;/SPAN&gt; uriHeaderFooter;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;string&lt;/SPAN&gt; headerfooterContentType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;string&lt;/SPAN&gt; relationshipType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;string&lt;/SPAN&gt; reference;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;package = &lt;SPAN&gt;Package&lt;/SPAN&gt;.Open(docName, &lt;SPAN&gt;FileMode&lt;/SPAN&gt;.Open, &lt;SPAN&gt;FileAccess&lt;/SPAN&gt;.ReadWrite);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Get the main document part (document.xml).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;foreach&lt;/SPAN&gt;&lt;SPAN&gt; (System.IO.Packaging.&lt;SPAN&gt;PackageRelationship&lt;/SPAN&gt; relationship &lt;SPAN&gt;in&lt;/SPAN&gt; package. GetRelationshipsByType(documentRelationshipType))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Uri&lt;/SPAN&gt;&lt;SPAN&gt; documentUri = &lt;SPAN&gt;PackUriHelper&lt;/SPAN&gt;.ResolvePartUri(&lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;Uri&lt;/SPAN&gt;(&lt;SPAN&gt;"/"&lt;/SPAN&gt;, &lt;SPAN&gt;UriKind&lt;/SPAN&gt;.Relative), relationship.TargetUri);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;documentPart = package.GetPart(documentUri);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;There is only one document.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;break&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt; (h)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;uriHeaderFooter = &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;Uri&lt;/SPAN&gt;(&lt;SPAN&gt;"/word/header2.xml"&lt;/SPAN&gt;, &lt;SPAN&gt;UriKind&lt;/SPAN&gt;.Relative);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;headerfooterContentType=&lt;SPAN&gt;"application/vnd.openxmlformats-officedocument. wordprocessingml.header+xml"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;relationshipType = &lt;SPAN&gt;"http://schemas.openxmlformats.org/ officeDocument/2006/relationships/header"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;reference = &lt;SPAN&gt;"w:headerReference"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;uriHeaderFooter = &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;Uri&lt;/SPAN&gt;(&lt;SPAN&gt;"/word/footer2.xml"&lt;/SPAN&gt;, &lt;SPAN&gt;UriKind&lt;/SPAN&gt;.Relative);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;headerfooterContentType = &lt;SPAN&gt;"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;relationshipType = &lt;SPAN&gt;"http://schemas.openxmlformats.org/officeDocument/ 2006/relationships/footer"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;reference = &lt;SPAN&gt;"w:footerReference"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt; (package.PartExists(uriHeaderFooter))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Although you could delete the relationship&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;to the existing node, the next time you save&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;the document after making changes, Word&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;will take care of this for you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;package.DeletePart(uriHeaderFooter);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Create the new footer part:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;PackagePart&lt;/SPAN&gt;&lt;SPAN&gt; headerfooterPart =package.CreatePart(uriHeaderFooter, headerfooterContentType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Write the footer out to its part.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Doc.Save(headerfooterPart.GetStream());&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Create the document's relationship to the new part:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;PackageRelationship&lt;/SPAN&gt;&lt;SPAN&gt; rel = documentPart.CreateRelationship(uriHeaderFooter, &lt;SPAN&gt;TargetMode&lt;/SPAN&gt;.Internal, relationshipType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;string&lt;/SPAN&gt; relID = rel.Id;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Manage namespaces to perform Xml XPath queries.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;NameTable&lt;/SPAN&gt; nt = &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;NameTable&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;XmlNamespaceManager&lt;/SPAN&gt; nsManager = &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;XmlNamespaceManager&lt;/SPAN&gt;(nt);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;nsManager.AddNamespace(&lt;SPAN&gt;"w"&lt;/SPAN&gt;, wordmlNamespace);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Get the document part from the package.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Load the XML in the part into an XmlDocument instance:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;XmlDocument&lt;/SPAN&gt; xdoc = &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;XmlDocument&lt;/SPAN&gt;(nt);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;xdoc.Load(documentPart.GetStream());&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Find the node containing the document layout:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;XmlNode&lt;/SPAN&gt; targetNode = xdoc.SelectSingleNode(&lt;SPAN&gt;"//w:sectPr"&lt;/SPAN&gt;, nsManager);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt; (targetNode != &lt;SPAN&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Delete any existing references to footers:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;XmlNodeList&lt;/SPAN&gt;&lt;SPAN&gt; headerfooterNodes = targetNode.SelectNodes(&lt;SPAN&gt;"./"&lt;/SPAN&gt;+reference, nsManager);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;foreach&lt;/SPAN&gt; (System.Xml.&lt;SPAN&gt;XmlNode&lt;/SPAN&gt; headerfooterNode &lt;SPAN&gt;in&lt;/SPAN&gt; headerfooterNodes)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;targetNode.RemoveChild(headerfooterNode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Create the new header reference node:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;XmlElement&lt;/SPAN&gt; node = xdoc.CreateElement(reference, wordmlNamespace);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;XmlAttribute&lt;/SPAN&gt; attr=node.Attributes.Append(xdoc.CreateAttribute(&lt;SPAN&gt;"r:id" &lt;/SPAN&gt;,relationshipNamespace));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;attr.Value = relID;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;node.Attributes.Append(attr);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;targetNode.InsertBefore(node, targetNode.FirstChild);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;&lt;SPAN&gt;//&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Save the document XML back to its part.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;xdoc.Save(documentPart.GetStream(&lt;SPAN&gt;FileMode&lt;/SPAN&gt;.Create, &lt;SPAN&gt;FileAccess&lt;/SPAN&gt;.Write));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&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; &lt;/SPAN&gt;package.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN class=m1&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://openxmldeveloper.com/aggbug.aspx?PostID=443" width="1" height="1"&gt;</description><enclosure url="http://openxmldeveloper.com/attachment/443.ashx" length="42982" type="application/x-zip-compressed" /><category domain="http://openxmldeveloper.com/archive/category/1003.aspx">WordProcessingML</category><category domain="http://openxmldeveloper.com/archive/category/1007.aspx">.NET (C#, VB, J#, C++/CLI)</category></item></channel></rss>