{"id":865,"date":"2011-12-01T04:18:24","date_gmt":"2011-12-01T04:18:24","guid":{"rendered":"http:\/\/www.ericwhite.com\/home2\/bm8qcmjy\/public_html\/blog\/?page_id=865"},"modified":"2018-05-31T21:34:26","modified_gmt":"2018-05-31T21:34:26","slug":"wordprocessingml-expanded","status":"publish","type":"page","link":"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\/","title":{"rendered":"WordprocessingML"},"content":{"rendered":"<h2 style='font-size: small;'><a href='https:\/\/www.ericwhite.com\/blog\/toc-expanded'>Back to TOC<\/a><a style='position: relative; left: 1em;' href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-video-expanded'>Just Videos<\/a><span style='position: relative; left: 2em;'><a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-condensed'>Condensed TOC<\/a><\/span><\/h2>\n<p>The markup language within Open XML for word-processing documents.<\/p>\n<ul>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/bb669127.aspx' target='_blank'>Tutorial: Manipulating Content in a WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This tutorial shows how to apply the functional transformational approach and LINQ to XML to manipulate XML documents. The C# and Visual Basic examples query and manipulate information in Office Open XML WordprocessingML documents that are saved by Microsoft Word.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/magazine\/ee532473.aspx' target='_blank'>Generating Documents from SharePoint with Open XML Content Controls<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>I&#8217;ll present some guidance and sample code for creating a document-generation system that uses SharePoint lists to populate tables in an Open XML word-processing document.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded'>SharePoint 2010<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/map\/generating-open-xml-wordprocessingml-documents-blog-post-series\/' target='_blank'>Generating Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This is a blog post series on parameterized Open XML WordprocessingML document generation.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/01\/17\/how-to-extract-comments-from-open-xml-documents.aspx\" target=\"_blank\">How to Extract Comments from Open XML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>How to Extract Comments from Open XML Documents<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/presentationml-expanded'>PresentationML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/spreadsheetml-expanded'>SpreadsheetML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/02\/23\/the-legacy-hashing-algorithm-in-open-xml.aspx\" target=\"_blank\">The Legacy Hashing Algorithm in Open XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In Open XML, there is a feature whereby you can restrict editing, and allow only users who have a password to modify the file.  Note that this isn&#8217;t a password that protects the file from viewing or modification.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/06\/11\/processing-open-xml-documents-server-side-using-powershell.aspx\" target=\"_blank\">Automated Processing of Open XML Documents using PowerShell<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Processing Open XML documents using PowerShell is a powerful approach for creating, modifying, and transforming Open XML documents.  The PowerTools for Open XML are examples and guidance that show how to do this.  They consist of PowerShell cmdlets, and a number of example scripts that demonstrate the use of the cmdlets.  Examples include automated word processing document and spreadsheet generation, and preparing documents for distribution external to a company, including removing comments, accepting revisions, applying a uniform theme to them, and applying a watermark to them.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/xlsx-generation-expanded'>XLSX Generation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/spreadsheetml-expanded'>SpreadsheetML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2008\/07\/09\/open-xml-sdk-and-linq-to-xml.aspx' target='_blank'>Open XML SDK and LINQ to XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This blog post has some code that uses the Open XML SDK and LINQ to XML to query an Open XML document.  It also is an example of code written in the functional style.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/07\/14\/using-the-open-xml-sdk-and-linq-to-xml-to-remove-comments-from-an-open-xml-wordprocessing-document.aspx\" target=\"_blank\">Using the Open XML SDK and LINQ to XML to Remove Comments from an Open XML Wordprocessing Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Using the Open XML SDK and LINQ to XML to Remove Comments from an Open XML Wordprocessing Document<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/07\/13\/using-the-open-xml-sdk-and-linq-to-xml-to-remove-personal-information-from-an-open-xml-wordprocessing-document.aspx\" target=\"_blank\">Using the Open XML SDK and LINQ to XML to Remove Personal Information from an Open XML Wordprocessing Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Using the Open XML SDK and LINQ to XML to Remove Personal Information from an Open XML Wordprocessing Document<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/07\/23\/removing-comments-and-personal-information-and-accepting-revisions-in-an-open-xml-document-stored-in-sharepoint.aspx\" target=\"_blank\">Removing Comments and Personal Information, and Accepting Revisions in an Open XML Document Stored in SharePoint<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post presents a custom application page in SharePoint that uses Open XML, the Open XML SDK and LINQ to XML to accept revisions, remove comments, and remove personal information from an Open XML word processing document.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded'>SharePoint 2010<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/linq-to-xml-expanded'>LINQ to XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/08\/21\/using-linq-to-xml-to-retrieve-content-controls-in-word-2007.aspx\" target=\"_blank\">Using LINQ to XML to Retrieve Content Controls in Word 2007<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Content controls are an effective way to add structure to word processing documents.  This post explains how to write a very small LINQ query to retrieve the contents of content controls. <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/09\/08\/openxmlcodetester-validating-code-in-open-xml-documents.aspx\" target=\"_blank\">OpenXmlCodeTester: Validating Code in Open XML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Validating Code in Open XML Documents.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/09\/19\/bulk-convert-doc-to-docx.aspx\" target=\"_blank\">Bulk Convert DOC to DOCX<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Microsoft has a bulk conversion utility that can convert multiple DOC files to DOCX files.  This blog post presents very basic information on its use. <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/10\/19\/creating-data-bound-content-controls-using-the-open-xml-sdk-and-linq-to-xml.aspx\" target=\"_blank\">Creating Data-Bound Content Controls using the Open XML SDK and LINQ to XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Creating Data-Bound Content Controls using the Open XML SDK and LINQ to XML<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2008\/10\/27\/how-to-use-altchunk-for-document-assembly.aspx' target='_blank'>How to Use altChunk for Document Assembly<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Merging multiple word processing documents into a single document is something that many people want to do.  An application built for attorneys might assemble selected standard clauses into a contract.  An application built for book publishers can assemble chapters of a book into a single document.  This post explains the semantics of the altChunk element, and provides some code using the Open XML SDK that shows how to use altChunk.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2008\/11\/03\/inserting-deleting-moving-paragraphs-in-open-xml-wordprocessing-documents.aspx' target='_blank'>Inserting \/ Deleting \/ Moving Paragraphs in Open XML Wordprocessing Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>If you are making a tool to manipulate paragraphs in Open XML Documents, then this post lists some of the constraints that you must pay attention to.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2008\/11\/04\/remove-rsid-attributes-and-elements-before-comparing-documents.aspx' target='_blank'>Remove Rsid Attributes and Elements before Comparing Open XML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>A convenient way to explore Open XML markup is to create a small document, modify the document slightly in the Word user interface, save it, and then compare it with the Open XML Diff utility that comes with the Open XML SDK V2.  However, Word adds extraneous elements and attributes that enable merging of two documents that have forked.  These elements and attributes show up as changed, and obscure the differences that we&#8217;re looking for.  An easy way to deal with this is to remove these elements and attributes before comparing documents.  We can safely do so without changing the content of the document.  This post presents a bit of code to do this.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2008\/12\/12\/modifying-open-xml-documents-using-the-sharepoint-object-model.aspx\" target=\"_blank\">Modifying Open XML Documents using the SharePoint Object Model<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>When working with Open XML documents from within SharePoint, you may want to open a specific document, modify it in some way, and then save it, either replacing the original document, or saving to a new location. <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded'>SharePoint 2010<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/01\/09\/modifying-open-xml-documents-that-are-in-sharepoint-document-libraries-using-web-services.aspx\" target=\"_blank\">Modifying Open XML Documents that are in SharePoint Document Libraries using Web Services<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>When using the Open XML SDK with SharePoint web services, one of the most basic operations is to get a document from a document library using web services, modify it using the Open XML SDK (and LINQ to XML), and save it back to the document library.  This post describes how to do this, and provides a sample in C#.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded'>SharePoint 2010<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/web-services-expanded'>Web Services<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/02\/05\/move-insert-delete-paragraphs-in-word-processing-documents-using-the-open-xml-sdk.aspx' target='_blank'>Move\/Insert\/Delete Paragraphs in Word Processing Documents using the Open XML SDK<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Move\/Insert\/Delete Paragraphs in Word Processing Documents using the Open XML SDK<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/02\/16\/finding-paragraphs-by-style-name-or-content-in-an-open-xml-word-processing-document.aspx' target='_blank'>Finding Paragraphs by Style Name or Content in an Open XML Word Processing Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Finding Paragraphs by Style Name or Content in an Open XML Word Processing Document<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/03\/24\/interrelated-markup-in-open-xml-word-processing-documents.aspx' target='_blank'>Interrelated Markup in Open XML Word Processing Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Interrelated Markup in Open XML Word Processing Documents<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/04\/06\/generating-a-custom-letter-using-powertools-for-open-xml-and-powershell.aspx\" target=\"_blank\">Generating a Custom Letter using PowerTools for Open XML and PowerShell<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Lawrence Hodson has written a cool article (with accompanying example PowerShell scripts) published on OpenXmlDeveloper.org that uses PowerTools for Open XML v1.1 to generate a letter.  His scenario is interesting &#8211; he generates a service level agreement (SLA) report based on information that he retrieves using PowerShell cmdlets.  His example includes assembling the document from multiple source documents and making use of content controls that are bound to custom XML.  <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/04\/12\/generalized-approach-to-open-xml-markup-references.aspx\" target=\"_blank\">Generalized Approach to Open XML Markup References<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>An explanation of the issues around interrelated markup that DocumentBuilder (a class in PowerTools for Open XML) solves.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/04\/19\/comparison-of-altchunk-to-the-documentbuilder-class.aspx' target='_blank'>Comparison of altChunk to the DocumentBuilder Class<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post compares and contrasts two approaches to assemble multiple Open XML word processing documents into a single document<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/04\/21\/using-documentbuilder-with-content-controls-for-document-assembly.aspx' target='_blank'>Using DocumentBuilder with Content Controls for Document Assembly<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>DocumentBuilder is an example class that&#8217;s part of the PowerTools for Open XML project that enables you to assemble new documents from existing documents. DocumentBuilder fixes up interrelated markup when assembling a new document from existing documents.  This post shows how to use DocumentBuilder in concert with content controls to control the document assembly.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/06\/29\/splitting-runs-in-open-xml-word-processing-document-paragraphs.aspx' target='_blank'>Splitting Runs in Open XML Word Processing Document Paragraphs<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Splitting Runs in Open XML Word Processing Document Paragraphs<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2009\/07\/05\/comparing-two-open-xml-documents-using-the-zip-extension-method.aspx' target='_blank'>Comparing Two Open XML Documents using the Zip Extension Method<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Comparing Two Open XML Documents using the Zip Extension Method<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/10\/12\/transforming-open-xml-word-processing-documents-to-xhtml.aspx\" target=\"_blank\">Transforming Open XML Word-Processing Documents to XHtml<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>First post in a series on transforming Open XML WordprocessingML markup to XHtml<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/10\/21\/transforming-open-xml-word-processing-documents-to-xhtml-post-2.aspx\" target=\"_blank\">Transforming Open XML Word-Processing Documents to XHtml (Post #2)<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Second post in a series on transforming Open XML WordprocessingML markup to XHtml<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem\" href=\"https:\/\/blogs.msdn.microsoft.com\/ericwhite\/2009\/10\/24\/transforming-open-xml-word-processing-documents-to-html-post-3\/\" target=\"_blank\">Transforming Open XML Word-Processing Documents to Html (Post #3)<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Third post in a series on transforming Open XML WordprocessingML markup to XHtml<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/10\/29\/open-xml-wordprocessingml-style-inheritance.aspx\" target=\"_blank\">Open XML WordprocessingML Style Inheritance (Post #4)<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Explores and explains style inheritance in Open XML WordprocessingML<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/11\/05\/comparison-of-html-css-tables-to-wordprocessingml-tables.aspx\" target=\"_blank\">Comparison of Html\/CSS Tables to WordprocessingML Tables (Post #5)<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Compares HTML tables that use CSS styling to tables in Open XML WordprocessingML.  Explains significant semantic differences.  If you are familiar with HTML tables, this is an easy way to learn about WordprocessingML tables.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/11\/12\/assembling-paragraph-and-run-properties-for-cells-in-a-table.aspx\" target=\"_blank\">Assembling Paragraph and Run Properties for Cells in an Open XML WordprocessingML Table<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>When you want to render a paragraph and its runs inside of a cell, you need to assemble the paragraph and run properties from a number of places.  This post details how we assemble styling information from table styles, the formatting directly applied to tables, paragraphs, and runs, and the global default paragraph and run properties.<br \/>\n<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ee836138.aspx' target='_blank'>Accepting Revisions in Open XML Word-Processing Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Revision tracking markup in Open XML word-processing documents is one of the more complex areas of the standard. Accepting tracked revisions makes processing of text in word-processing documents simpler. Learn about the Open XML markup that deals with revision tracking, and how to programmatically accept tracked revisions using the Open XML Format SDK 2.0.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/12\/13\/implementing-inheritance-in-xml.aspx\" target=\"_blank\">Implementing &#8216;Inheritance&#8217; in XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Some XML vocabularies implement a powerful XML pattern that is analogous to inheritance in programming language type systems.  Open XML WordprocessingML has these semantics around styles.  When you define a new style, you can base this style on another style, and if the new style doesn&#8217;t explicitly define some aspect of the style, the new style &#8216;inherits&#8217; this aspect from its base style.  This post presents some code that uses one approach for implementing inheritance semantics.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/xml-expanded'>XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/functional-programming-expanded'>Functional Programming<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/12\/15\/working-with-numbering-in-wordprocessingml.aspx\" target=\"_blank\">Working with Numbering in Open XML WordprocessingML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>When implementing a conversion of Open XML word processing documents to HTML, one of the interesting issues is accurately converting numbered and bulleted lists.  You must pay special attention to them, because they impact the text that the document contains, but that text isn&#8217;t directly in the markup.  If you are accurately extracting the text of the document, you must process some elements and attributes to assemble the correct text.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2009\/12\/21\/accepting-revisions-in-open-xml-wordprocessingml-documents.aspx\" target=\"_blank\">Accepting Revisions in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Revision tracking markup in Open XML word-processing documents is one of the more complex areas of the standard. If you first accept tracked revisions, it makes subsequent processing of text in word-processing documents much simpler. As an example, in my current project of transforming Open XML word-processing documents to XHtml, before doing the conversion, I accept tracked revisions in an in-memory WordprocessingDocument object.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ee956524.aspx' target='_blank'>Using the SharePoint Foundation 2010 Managed Client Object Model with the Open XML SDK 2.0<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>The Microsoft SharePoint Foundation 2010 managed client object model enables you to write applications that are based on the Microsoft .NET Framework that access SharePoint content from clients without installing code on the server that runs SharePoint Foundation 2010. By using these two technologies together you can write client-side applications that work with Open XML documents that are stored in document libraries.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded'>SharePoint 2010<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/csom-expanded'>CSOM<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.technet.com\/b\/gray_knowlton\/archive\/2010\/01\/04\/using-content-controls-vs-custom-xml-elements.aspx' target='_blank'>Designing a Content Publishing System<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Explains an approach for using styles and content controls for implementing an authoring environment for a publishing system.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded'>Managed Add-Ins<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/01\/08\/how-to-control-sections-when-using-openxml-powertools-documentbuilder.aspx\" target=\"_blank\">How to Control Sections when using DocumentBuilder<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>When using DocumentBuilder, sometimes you want to control is how sections are copied to the document you are building.  Sections carry a fair amount of formatting information, including the layout of the page, and the headers and footers that will be used for the section.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/01\/11\/simplifying-open-xml-wordprocessingml-queries-by-first-accepting-revisions.aspx\" target=\"_blank\">Simplifying Open XML WordprocessingML Queries by First Accepting Revisions<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Simplifying Open XML WordprocessingML Queries by First Accepting Revisions<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.technet.com\/b\/gray_knowlton\/archive\/2010\/01\/15\/associating-data-with-content-controls.aspx' target='_blank'>Associating Data with Content Controls<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>You may have the need to associate arbitrary amounts of data with each content control. You may also have the requirement that the document author can create and edit this auxiliary information. Content controls don&#8217;t directly have a facility for storing and maintaining such information, but there is a fairly easy approach to solving this problem.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded'>Managed Add-Ins<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/01\/21\/writing-entity-references-using-linq-to-xml.aspx\" target=\"_blank\">Writing Entity References using LINQ to XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>As delivered, it is difficult to write entities using LINQ to XML.  This post presents a small hack that enables you to serialize XML entities.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/linq-to-xml-expanded'>LINQ to XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/xml-expanded'>XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2010\/01\/22\/inserting-content-that-contains-images-using-altchunk.aspx' target='_blank'>Inserting Content That Contains Images Using altChunk<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Inserting Content That Contains Images Using altChunk<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/01\/27\/programmatically-limiting-styles-in-word.aspx\" target=\"_blank\">Programmatically Limiting Styles in Word<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Authoring in Word makes publishing systems very user friendly.  After the user authors his or her paper, you can transform Open XML WordprocessingML to the desired output format.  Some publishing systems use an approach of limiting the paragraph and character styles that the author can use.  This can help in writing a more deterministic transform to the output format.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded'>Managed Add-Ins<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/02\/02\/increasing-performance-of-word-automation-for-large-amount-of-data-using-open-xml-sdk.aspx\" target=\"_blank\">Increasing Performance of Word Automation for large amount of data using Open Xml SDK<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Sometimes in the process of building a managed add-in, you want to insert a large amount of content into a document &#8211; perhaps hundreds of paragraphs or hundreds of rows in a table.  Using Word automation can be slow.  It was not designed for this scenario.  But there is a way to dramatically speed up this process by processing\/creating Open XML from within the managed add-in using the Open XML SDK.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded'>Managed Add-Ins<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2010\/02\/08\/enabling-better-transformations-by-simplifying-open-xml-wordprocessingml-markup.aspx' target='_blank'>Enabling Better Transformations by Simplifying Open XML WordprocessingML Markup<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>When transforming Open XML markup to another XML vocabulary (such as XHtml), you can sometimes simplify the transform by first transforming the original document to a new, valid WordprocessingML document that contains much simpler markup, and therefore is easier to process. This blog post describes a utility class, MarkupSimplifier, which is part of the PowerTools for Open XML project. <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2010\/02\/11\/retrieving-the-default-style-name-of-an-open-xml-wordprocessingml-document.aspx' target='_blank'>Retrieving the Default Style Name of an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Whenever you write some Open XML SDK code that processes paragraphs based on style name, you need to retrieve the default style name for a document.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2010\/02\/18\/listitemretriever-accurately-retrieving-text-of-a-paragraph.aspx' target='_blank'>ListItemRetriever: Accurately Retrieving Text of a Open XML WordprocessingML Paragraph<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Accurately Retrieving Text of a Open XML WordprocessingML Paragraph. (This is one in a series of posts on transforming Open XML WordprocessingML to XHtml.)<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ee922775.aspx' target='_blank'>Working with Numbered Lists in Open XML WordprocessingML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Learn about lists in Open XML. Word 2010 documents often contain numbered and bulleted lists. This area of WordprocessingML is justifiably complex. Numbered lists and bulleted lists have many features, each used by a different set of uses. <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff433637.aspx' target='_blank'>Building Publishing Systems that Use Word 2010 or Word 2007<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Using Word 2010 or Word 2007 as an important part of a content publishing system is a powerful approach. This article contains guidance and direction about how to build a content management system, and transforming Open XML WordprocessingML documents to other document formats.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff433638(office.14).aspx' target='_blank'>Building Document Generation Systems from Templates with Word 2010 and Word 2007<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Some business scenarios require generation of many documents by using a template document and a data source. This article contains guidance for this scenario and links to MSDN articles and blog posts.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2010\/03\/01\/transforming-wordprocessingml-to-simpler-xml-for-easier-processing.aspx' target='_blank'>Transforming WordprocessingML to Simpler XML for Easier Processing<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Transforming WordprocessingML to Simpler XML for Easier Processing<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/03\/02\/using-nested-content-controls-for-data-and-content-extraction.aspx\" target=\"_blank\">Using Nested Content Controls for Data and Content Extraction from Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Data and content extraction is one of the scenarios where content controls are very useful.  Data extraction is when you are extracting specific numbers or string values from a document.  Content extraction is when you are extracting formatted WordprocessingML tables and paragraphs, and constructing another document from that content.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded'>Managed Add-Ins<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/blogs.msdn.com\/ericwhite\/archive\/2010\/03\/04\/validate-open-xml-documents-using-the-open-xml-sdk-2-0.aspx' target='_blank'>Validate Open XML Documents using the Open XML SDK 2.0<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Validate Open XML Documents using the Open XML SDK 2.0<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/spreadsheetml-expanded'>SpreadsheetML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/presentationml-expanded'>PresentationML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/03\/09\/reducing-connaissance-interconnectedness-and-increasing-robustness-using-linq.aspx\" target=\"_blank\">Reducing Connaissance (Interconnectedness) and Increasing Robustness using LINQ<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>LINQ makes programs more maintainable.  This post explains why.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/03\/11\/formats-supported-for-altchunk.aspx\" target=\"_blank\">Formats Supported for altChunk<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post lists formats supported for imported content by the altChunk importing functionality of Word.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/03\/24\/modifying-an-open-xml-document-in-a-sharepoint-document-library.aspx\" target=\"_blank\">Modifying an Open XML Document in a SharePoint Document Library<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>On a fairly regular basis, I need to write an example that retrieves an Open XML document from a SharePoint document library, modify the document, and save the document back to the document library.  The correct approach is to use a CAML query to retrieve the document.  This post presents the minimum amount of code to use the SharePoint object model to do this.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded'>SharePoint 2010<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/03\/29\/testing-for-base-styles-in-open-xml-wordprocessingml-documents.aspx\" target=\"_blank\">Testing for Base Styles in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Testing for Base Styles in Open XML WordprocessingML Documents<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/03\/31\/using-content-controls-to-give-semantic-meaning-to-content-in-open-xml-wordprocessingml-documents.aspx\" target=\"_blank\">Using Content Controls to give Semantic Meaning to Content in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Using Content Controls to give Semantic Meaning to Content in Open XML WordprocessingML Documents<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff628051.aspx' target='_blank'>Transforming Open XML WordprocessingML to XHTML Using the Open XML SDK 2.0<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Transforming Open XML WordprocessingML to XHTML Using the Open XML SDK 2.0<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/04\/09\/using-the-open-xml-sdk-from-within-a-managed-add-in.aspx\" target=\"_blank\">Using the Open XML SDK from within a Managed Add-In<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Using the Open XML SDK from within a Managed Add-In<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff629396.aspx' target='_blank'>Identifying Open XML Word-Processing Documents with Tracked Revisions<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Determining whether an Open XML WordprocessingML document contains tracked revisions is important. You can significantly simplify your code to process Open XML WordprocessingML if you know that the document does not contain tracked revisions. This article describes how to determine whether a document contains tracked revisions.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff686712.aspx' target='_blank'>Mastering Text in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Understand how to reliably retrieve text from Open XML WordprocessingML documents.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff742315.aspx' target='_blank'>Developing with SharePoint 2010 Word Automation Services<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Learn to use Word Automation Services to do server-side document conversions to and from a variety of document formats. By using the Open XML SDK, you can accomplish tasks that are difficult such as updating the table of contents or repaginating documents. <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded'>SharePoint 2010<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/word-automation-services-expanded'>Word Automation Services<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class=\"ericListItem broken_link\" href=\"http:\/\/blogs.msdn.com\/b\/ericwhite\/archive\/2010\/07\/02\/processing-all-content-parts-in-an-open-xml-wordprocessingml-document.aspx\" target=\"_blank\">Processing all Content Parts in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post shows how to search for all content controls in a document, regardless of whether those content controls are in the main document part, in the headers\/footers, or in endnotes\/footnotes.  This example uses LINQ to XML.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff951689.aspx' target='_blank'>Creating Open XML WordprocessingML Tables with Vertically Merged Cells<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Create tables with vertically-merged cells in Open XML WordprocessingML documents. <span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/01\/24\/generating-open-xml-wordprocessingml-documents\/' target='_blank'>Generating Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Introduces this blog post series on generating WordprocessingML documents, outlines the goals of the series, and describes various approaches that I may take as I develop some document generation examples.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/01\/26\/using-a-wordprocessingml-document-as-a-template-in-the-document-generation-process\/' target='_blank'>Using a WordprocessingML Document as a Template in the Document Generation Process<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post examines the approaches for building a template document for the document generation process. A template document is a DOCX document that contains content controls that will control the document generation process.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/01\/28\/the-second-iteration-of-the-template-document\/' target='_blank'>The Second Iteration of the Template Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post presents the second iteration on a template document to be used for a document generation process.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/02\/02\/more-enhancements-to-the-document-template\/' target='_blank'>More Enhancements to the Document Template<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Discusses enhancements that enable the template designer to write infrastructure code for the document generation process. Also discusses how the document generation process will work.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/02\/07\/generating-c-code-from-an-xml-tree-using-virtual-extension-methods\/' target='_blank'>Generating C# code from an XML Tree using Virtual Extension Methods<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>One integral part of my scheme for building a document generation system is to write some code that generates C# code to create an arbitrary XML tree. I want to transform the markup for the main document part into C# code that will produce that main document part, with the exception that at various points where I find content controls, I want to alter the transformation as appropriate. The first task is to write code that produces C# code that will create any arbitrary XML tree.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/01\/a-super-simple-template-system\/' target='_blank'>A Super-Simple Template System<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post details my super-simple template system, which will be more than adequate for building this first version of a doc gen system.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/02\/19\/text-templates-t4-and-the-code-generation-process\/' target='_blank'>Text Templates (T4) and the Code Generation Process<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Text templates are very cool, and have applicability in the Open XML document generation process. This post details my notes and thoughts on text templates.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/02\/video-of-use-of-document-generation-example\/' target='_blank'>Video of use of Document Generation Example<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>First version of this document generation system that is driven by C# code that you write in content controls in a Word document.  As an intro, he has recorded a small screen-cast that shows the doc gen system in action.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/08\/release-of-v1-of-simple-docx-generation-system\/' target='_blank'>Release of V1 of Simple DOCX Generation System<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This is a preliminary version of a simple DOCX generation system, which you can download, unzip, and try. This article lists two screen casts, first 90 second screen-cast shows how to run the doc gen system after you download and unzip the zip file.The second 2 1\/2 minute video shows using the document generation system at scale.  It shows generating 3000 documents in under a minute.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/09\/getting-started-with-open-xml-powertools-markup-simplifier\/' target='_blank'>Getting Started with Open XML PowerTools Markup Simplifier<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In PowerTools, in the HtmlConverter project, there is a class called MarkupSimplifier, which can remove proofing errors.  In addition, it can simplify WordprocessingML markup in a variety of ways, including removal of comments, content controls, and etc.<br \/>\nHere is a small screen-cast that shows the use of MarkupSimplifier.  This screen-cast uses Open XML Package Editor Power Tool for Visual Studio 2010.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/15\/changing-the-schema-for-this-open-xml-document-generation-system\/' target='_blank'>Changing the Schema for this Open XML Document Generation System<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In the following screen cast shows the process of adjusting the XML data that drives the document generation system, as well as adjusting the template document to use that data.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/22\/generating-open-xml-wordprocessingml-documents-using-xpath-expressions-in-content-controls\/' target='_blank'>Generating Open XML WordprocessingML Documents using XPath Expressions in Content Controls<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Introduces the approach of configuring the document generation process by entering XPath expressions in content controls in a template document.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/27\/importing-html-that-contains-numbering-using-altchunk\/' target='_blank'>Importing HTML that contains numbering using altChunk<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Importing HTML that contains numbering using altChunk<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/03\/28\/132189.aspx' target='_blank'>Updating Data for an Embedded Chart in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This blog post shows how to update Data in an embedded chart in an Open XML WordprocessingML Document.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/03\/28\/131867.aspx' target='_blank'>Replacing a Picture in a Picture Content Control in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>You may have a picture content control where you want to replace the picture with a different picture. This post shows the Open XML SDK V2 code that is necessary to find a picture content control with an alias of &#8220;MyPicture&#8221;. It then finds the ImagePart, and then replaces the contents of the image part with a different image.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/03\/28\/132189.aspx' target='_blank'>Updating Data for an Embedded Chart in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Embedding charts in a word-processing document is a good way to put together documents that display graphical data. When you embed a chart in a document, an Open XML SpreadsheetML workbook is stored as an embedded part in the WordprocessingML document. The spreadsheet contains the data behind the chart. When you maintain that data, Word starts Excel, opening that embedded spreadsheet.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/spreadsheetml-expanded'>SpreadsheetML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/03\/28\/131868.aspx' target='_blank'>Importing HTML that contains Numbering using altChunk<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>It is possible to import HTML that contains bullets or numbering using atlChunk. Word 2007 or 2010 imports the numbered items and creates the appropriate WordprocessingML markup, as well as necessary numbering styles, to create a word-processing document that looks as close as possible to the original HTML.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/03\/28\/131867.aspx' target='_blank'>Replacing a Picture in a Picture Content Control in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>You may have a picture content control where you want to replace the picture with a different picture. This post shows the Open XML SDK V2 code that is necessary to find a picture content control with an alias of \u201cMyPicture\u201d. It then finds the ImagePart, and then replaces the contents of the image part with a different image.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/29\/release-of-v2-of-doc-gen-system-xpath-in-content-controls\/' target='_blank'>Release of V2 of Doc Gen System: XPath in Content Controls<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In this post, I release V2 of this simple document generation example. I provide a 2-minute screen-cast that shows the document generation process, generating 3000 documents in less than 30 seconds.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/03\/29\/update-data-behind-an-embedded-chart-in-an-open-xml-wordprocessingml-document\/' target='_blank'>Update Data behind an embedded Chart in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>11 minute video that walks through the process of embedding a chart in a word-processing document, and then programmatically updating that data so that the chart reflects the new data.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/04\/01\/133710.aspx' target='_blank'>How to Solve Open XML Developer Problems<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This screen-cast shows the general approach that I use to solve Open XML developer problems. The general gist of the approach is that I create two documents, one without the feature of interest, and one with. I then use the <a href=\"http:\/\/www.microsoft.com\/downloads\/en\/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&amp;displaylang=en\" class=\"broken_link\">Open XML SDK productivity tool<\/a> to compare the two and find out the differences. I then use the <a href=\"http:\/\/visualstudiogallery.msdn.microsoft.com\/450a00e3-5a7d-4776-be2c-8aa8cec2a75b\">Open XML Package Editor Power Tool for Visual Studio 2010<\/a> to examine the markup, and I use the PDF form of the <a href=\"http:\/\/www.ecma-international.org\/publications\/standards\/Ecma-376.htm\" class=\"broken_link\">ECMA 376 Second Edition Part 1<\/a> to research the markup.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-tools-expanded'>Open XML Tools<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/04\/08\/review-of-xpath-semantics-of-linq-to-xml\/' target='_blank'>Review of XPath Semantics of LINQ to XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In this post, I review the XPath semantics of LINQ to XML, and show some concrete examples of how I use those semantics in the XPath-in-Content-Controls approach to Open XML WordprocessingML document generation.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/linq-to-xml-expanded'>LINQ to XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/04\/11\/137431.aspx' target='_blank'>How to Insert a Page Break between Imported Content<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Describes how to Insert a Page Break between Imported Content.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/04\/11\/137383.aspx' target='_blank'>Iterating through all Content Controls in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Sometimes you want to iterate over all content controls in a WordprocessingML document. You may want to search for a content control with a specific tag, or you may want to process all content controls of a specific type. This blog post shows how to iterate over all content controls.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/04\/18\/change-the-schema-for-simple-free-doc-generation-system\/' target='_blank'>Change the Schema for Simple Free Doc Generation System<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Three minute screen-cast that demonstrates changing the schema for simple document generation system that you configure by placing XPath expressions in content controls.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded'>DOCX Generation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/04\/22\/141825.aspx' target='_blank'>Open XML Markup Simplifier Application makes it easier to research WordprocessingML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This article describes WinForms Application that makes it easier to research OpenXML markup, by creating documents, altering documents, and then comparing the two documents. The MarkupSimplifier class (which is part of the PowerTools for Open XML project) can help, but as downloaded from CodePlex it is simply a class.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/04\/22\/141825.aspx' target='_blank'>Open XML Markup Simplifier Application makes it easier to research WordprocessingML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Sometimes when researching and examining Open XML WordprocessingML markup, extraneous markup that is not relevant to the issue at hand gets in the way of seeing what is going on. If you are researching markup by creating documents, altering documents, and then comparing the two documents, as detailed in <a href=\"http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/04\/01\/133710.aspx\" >How to Solve Open XML Developer Problems<\/a>, your research process is made significantly easier by simplifying the markup before comparing.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/04\/25\/143067.aspx' target='_blank'>In-Depth Exploration of WordprocessingML Fields<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>First video in a two-part series that explains how field markup works.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/04\/27\/143766.aspx' target='_blank'>In-Depth Exploration of WordprocessingML Fields &#8211; Part 2<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>See how to use a MarkupSimplifier utility program to make field markup more understandable. In walk through two cases where fields can be embedded in other fields.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/05\/03\/145486.aspx' target='_blank'>Retrieving Fields in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>The markup for fields in WordprocessingML documents is fairly involved. This post presents some code to accurately parse field markup.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/05\/04\/screen-cast-exploring-margins-in-open-xml-wordprocessingml-documents\/' target='_blank'>Screen-cast: Exploring Margins in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This blog has recorded short screen-cast that explores some approaches to setting margins in a word-processing document.  It shows setting margins for cells, paragraphs, and sections.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/05\/04\/145745.aspx' target='_blank'>Exploring Margins in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Article has a short screen-cast that shows the markup for various ways of setting margins &#8211; for cells, paragraphs, and sections. In addition, the video shows general approach for researching Open XML markup.<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/05\/10\/using-xml-dom-to-detect-tracked-revisions-in-an-open-xml-wordprocessingml-document\/' target='_blank'>Using XML DOM to Detect Tracked Revisions in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Using XML DOM to Detect Tracked Revisions in an Open XML WordprocessingML Document<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/archive\/2011\/05\/10\/147628.aspx' target='_blank'>Using XML DOM to Detect Tracked Revisions in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Many developers do not have option of using LINQ to process XML. This post presents a code which uses XML DOM API  to detect tracked revisions<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/05\/12\/search-and-replace-text-in-an-open-xml-wordprocessingml-document\/' target='_blank'>Search and Replace Text in an Open XML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Search and Replace Text in an Open XML WordprocessingML Document<span style='color:#2b91af;'>  (Article,Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/07\/07\/introduction-to-documentbuilder-2-0-screen-cast-1-of-3.aspx' target='_blank'>Introduction to DocumentBuilder 2.0 &#8211; Screen-Cast 1 of 3<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This post contains the first of three screen-casts that introduces DocumentBuilder 2.0, talks about interrelated markup, and explores how DocumentBuilder solves developer issues with regards to interrelated markup.  While this screen-cast is a bit long (20 minutes), it will be important for developers using DocumentBuilder who want to know how DocumentBuilder works.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/07\/12\/introduction-to-documentbuilder-2-0-screen-cast-2-of-3.aspx' target='_blank'>Introduction to DocumentBuilder 2.0 &#8211; Screen-Cast 2 of 3<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This screen-cast builds on the previous screen-cast where I walk through the process of transferring comments from multiple source documents into a destination document.  In this screen-cast, I insert images into the comments.  This introduces some complexity &#8211; the comments part has a relationship to an image part.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/07\/14\/introduction-to-documentbuilder-2-0-screen-cast-3-of-3.aspx' target='_blank'>Introduction to DocumentBuilder 2.0 &#8211; Screen-Cast 3 of 3<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This screen-cast builds on the previous two screen-casts where I walk through the process of transferring comments from multiple source documents into a destination document.  In this final screen-cast in the series, I walk through some of the code in DocumentBuilder 2.0 &#8211; I explain how the code is data-driven to make it more robust, and discuss the structure of the code and how DocumentBuilder 2.0 works.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/08\/04\/introducing-textreplacer-a-new-class-for-powertools-for-open-xml.aspx' target='_blank'>Introducing TextReplacer: A New Class for PowerTools for Open XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This code to search-and-replace in an Open XML WordprocessingML document uses LINQ to XML to implement a functional transform.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/08\/08\/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents.aspx' target='_blank'>Exploring Tables-of-Contents in Open XML WordprocessingML Documents<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Many Open XML developers need to generate documents, and then generate and insert an updated table-of-content for the document.  TOC&#8217;s in Open XML are not hard, but they require a bit of explanation.  This blog post introduces the first of several screen-casts around Open XML WordprocessingML TOCs.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/08\/10\/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-2.aspx' target='_blank'>Exploring Tables-of-Contents in Open XML WordprocessingML Documents (Part 2)<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In this screen-cast, I discuss a bit more about the markup, and then walk through some example code that is part of the PowerTools for Open XML project.  The example code shows how to insert a TOC at a desired point in a document, and then set the <w:updateFields> element.  Then, when the user next opens that document, Word will present them with the option to repaginate and update the TOC.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/08\/15\/exploring-tables-of-contents-in-open-xml-wordprocessingml-documents-part-3.aspx' target='_blank'>Exploring Tables-of-Contents in Open XML WordprocessingML Documents (Part 3)<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In this screen-cast, I show how you can use Word Automation to open and save the document, thereby causing all fields to be updated, including the TOC.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/word-automation-expanded'>Word Automation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/office-automation-expanded'>Office Automation<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/08\/18\/new-screen-cast-short-and-sweet-intro-to-documentbuilder-2-0.aspx' target='_blank'>Short and Sweet Intro to DocumentBuilder 2.0<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This is a short screen-cast that explains what DocumentBuilder 2.0 is all about, in less than seven minutes.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/08\/19\/whit-is-the-glossary-document-used-for.aspx' target='_blank'>What is the glossary document used for?<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>The glossary part is used for the placeholder text for content controls.  In DOTX, it is used for the content for quick parts.  This 3 minute video demonstrates these two uses.  It also shows a little trick you can do with content controls and the glossary part.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='https:\/\/www.ericwhite.com\/blog\/2011\/08\/22\/fourth-and-final-screen-cast-in-series-on-addingupdating-the-toc-in-openxml-wordprocessingml-documents\/' target='_blank'>Adding\/Updating the TOC in OpenXML WordprocessingML Documents (4th Screen-cast<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Shows how to use Word Automation Services to repaginate a document and update the table-of-contents.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/word-automation-services-expanded'>Word Automation Services<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/08\/24\/updating-the-toc-in-a-wordprocessingml-document-using-an-autoopen-macro.aspx' target='_blank'>Updating the TOC in a WordprocessingML Document using an AutoOpen Macro<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In the screen-cast that I present in this post, I show how you can add a TOC using the Open XML SDK, and then modify the normal.dotx, adding a macro, so that whenever you open a document that contains a TOC, Word repaginates the document and updates the TOC. <span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/vba-expanded'>VBA<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/word-automation-expanded'>Word Automation<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/09\/01\/how-to-retrieve-the-text-of-a-bookmark-from-an-openxml-wordprocessingml-document.aspx' target='_blank'>How to Retrieve the Text of a Bookmark from an OpenXML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Sometimes developers use bookmarks to delineate text in an OpenXML WordprocessingML document.  Then, as part of a larger system, they want to retrieve the text of that bookmark to process in some fashion. <span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/09\/06\/replacing-text-of-a-bookmark-in-an-openxml-wordprocessingml-document.aspx' target='_blank'>Replacing Text of a Bookmark in an OpenXML WordprocessingML Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In a <a href=\"http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/09\/01\/how-to-retrieve-the-text-of-a-bookmark-from-an-openxml-wordprocessingml-document.aspx\">previous screen-cast<\/a>, I showed how to retrieve the text of an OpenXML WordprocessingML document.  In this post and screen-cast, I introduce some code that enables you to replace the text of a bookmark.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/09\/23\/advanced-use-of-documentbuilder-2-0.aspx' target='_blank'>Advanced use of DocumentBuilder 2.0<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>The default approach to working with DocumentBuilder 2.0 enables you to take bits and pieces of multiple documents and assemble them together into a new document.  However, there is an interesting scenario that this approach does not handle.  You may want to import a document into a cell in a table, into a text box, or into a content control.  You can do this with DocumentBuilder 2.0.  This video shows how.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded'>DocumentBuilder<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/10\/03\/custom-xml-parts-and-content-controls.aspx' target='_blank'>Custom XML Parts and Content Controls<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Using custom XML parts and content controls, we can create smarter documents that provide needed functionality for users.  Content controls and custom XML parts enable us to integrate business data with content in a document.  In addition, content controls can be used to delineate data or content in a document. <span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/content-controls-expanded'>Content Controls<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/10\/12\/exploring-the-set-openxmlstring-cmdlet-in-powertools-for-open-xml-2-2.aspx' target='_blank'>Exploring the Set-OpenXmlString CMDLET in PowerTools for Open XML 2.2<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>The Set-OpenXmlString cmdlet enables interesting functionality &#8211; you can do a search-and-replace of content without automating Word, and you can search-and-replace in many documents at once.  The Set-OpenXmlString can search-and-replace in both WordprocessingML documents and PresentationML documents. <span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/presentationml-expanded'>PresentationML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/11\/03\/merge-comments-from-multiple-openxml-wordprocessingml-documents-into-a-single-document.aspx' target='_blank'>Merge Comments from Multiple OpenXML WordprocessingML Documents into a Single Document<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Introduces code that shows how to merge comments from multiple WordprocessingML documents into a single document.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/11\/07\/new-screen-cast-on-the-split-openxmldocument-cmdlet-in-powertools-for-open-xml.aspx' target='_blank'>Split-OpenXmlDocument cmdlet in PowerTools for Open XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>In document processing parlance, shredding a document is the process of dividing a source document according to certain rules, and creating a number of documents from the source document.  This is useful, for instance, when you have a huge document, and you want to divide it into multiple documents to hand off to different authors or editors.  Then, after all edits have been completed, you can merge the various parts back into a complete document.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/11\/14\/exploring-the-markup-for-bibliographies-in-openxml-wordprocessingml.aspx' target='_blank'>Exploring the Markup for Bibliographies in OpenXML WordprocessingML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>This screen-cast walks through bibliography markup.  Bibliographies use custom XML parts, so in addition to showing the field markup for citations and the generated bibliography, the screen-cast discusses the mechanism by which you can determine the purpose of any particular custom XML part. <span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/11\/18\/screen-cast-sections-headers-and-footers.aspx' target='_blank'>Screen-Cast: Sections, Headers, and Footers<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>When generating documents, you sometimes will want to create documents with multiple sections, so that you can control page layout separately for each section.  In addition, you sometimes will want to create headers and footers for each section. <span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/11\/29\/open-xml-specific-utility-methods-and-classes-in-powertools-for-open-xml.aspx' target='_blank'>Open XML Specific Utility Methods and Classes in PowerTools for Open XML<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Screen-cast that introduces a number of OpenXML specific utility methods and classes in PowerTools for Open XML.  These classes and methods are in the PtOpenXmlUtil.cs module.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded'>PowerTools for Open XML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/functional-programming-expanded'>Functional Programming<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/openxmldeveloper.org\/home2\/bm8qcmjy\/public_html\/blog\/b\/openxmldeveloper\/archive\/2011\/12\/09\/displaying-an-open-xml-wordprocessingml-document-in-a-web-browser-control-in-windows-forms.aspx' target='_blank'>Displaying an Open XML WordprocessingML Document in a Web Browser Control in Windows Forms<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>Screen-cast that shows how to convert a WordprocessingML document to XHtml and then display that XHtml in a Web Browser control in a Windows Forms application.<span style='color:#2b91af;'>  (Video)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<li class='ericListItem'><a class='ericListItem' href='http:\/\/msdn.microsoft.com\/en-us\/library\/ff433640(v=office.14).aspx' target='_blank'>Using Open XML WordprocessingML Documents as Data Sources<\/a><\/li>\n<p><\/p>\n<div style='margin-left: 2em; margin-bottom: 1em;'>You can use Microsoft Office 2010 or the 2007 Microsoft Office system as part of a comprehensive collaboration system. You can send preformatted documents to your customers and extract data and content from those documents after they are returned. This article contains guidance and links to other resources to help you get started.<span style='color:#2b91af;'>  (Article)<\/span><\/p>\n<div style='vertical-align: text-top; margin-top: .5em;'><span style='color:#2b91af;'>Keywords:&nbsp;&nbsp;<\/span><a href='https:\/\/www.ericwhite.com\/blog\/openxml-expanded'>OpenXML<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded'>Open XML SDK<\/a>&nbsp;&nbsp;<a href='https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded'>WordprocessingML<\/a>&nbsp;&nbsp;<\/div>\n<\/div>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Back to TOCJust VideosCondensed TOC The markup language within Open XML for word-processing documents. Tutorial: Manipulating Content in a WordprocessingML Document This tutorial shows how to apply the functional transformational approach and LINQ to XML to manipulate XML documents. The C# and Visual Basic examples query and manipulate information in Office Open XML WordprocessingML documents [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_s2mail":"","footnotes":""},"class_list":["post-865","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/comments?post=865"}],"version-history":[{"count":7,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/865\/revisions"}],"predecessor-version":[{"id":7325,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/865\/revisions\/7325"}],"wp:attachment":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/media?parent=865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}