{"id":604,"date":"2011-12-01T03:51:58","date_gmt":"2011-12-01T03:51:58","guid":{"rendered":"http:\/\/www.ericwhite.com\/home2\/bm8qcmjy\/public_html\/blog\/?page_id=604"},"modified":"2019-09-29T16:24:26","modified_gmt":"2019-09-29T16:24:26","slug":"content-controls-expanded","status":"publish","type":"page","link":"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\/","title":{"rendered":"Content Controls"},"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\/content-controls-video-expanded\">Just Videos<\/a><span style=\"position: relative; left: 2em;\"><a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-condensed\">Condensed TOC<\/a><\/span><\/h2>\n<p>Content controls are the main mechanism to delineate content in WordprocessingML documents.<\/p>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"http:\/\/msdn.microsoft.com\/en-us\/magazine\/ee532473.aspx\" target=\"_blank\" rel=\"noopener\">Generating Documents from SharePoint with Open XML Content Controls<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/sharepoint-2010-expanded\">SharePoint 2010<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/map\/generating-open-xml-wordprocessingml-documents-blog-post-series\/\" target=\"_blank\" rel=\"noopener\">Generating Open XML WordprocessingML Documents<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Using LINQ to XML to Retrieve Content Controls in Word 2007<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Creating Data-Bound Content Controls using the Open XML SDK and LINQ to XML<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Using DocumentBuilder with Content Controls for Document Assembly<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/documentbuilder-expanded\">DocumentBuilder<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/powertools-for-open-xml-expanded\">PowerTools for Open XML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Designing a Content Publishing System<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded\">Managed Add-Ins<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Associating Data with Content Controls<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded\">Managed Add-Ins<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ff433637.aspx\" target=\"_blank\" rel=\"noopener\">Building Publishing Systems that Use Word 2010 or Word 2007<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Using Nested Content Controls for Data and Content Extraction from Open XML WordprocessingML Documents<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/managed-add-ins-expanded\">Managed Add-Ins<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Using Content Controls to give Semantic Meaning to Content in Open XML WordprocessingML Documents<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/2011\/01\/24\/generating-open-xml-wordprocessingml-documents\/\" target=\"_blank\" rel=\"noopener\">Generating Open XML WordprocessingML Documents<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Using a WordprocessingML Document as a Template in the Document Generation Process<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/2011\/02\/02\/more-enhancements-to-the-document-template\/\" target=\"_blank\" rel=\"noopener\">More Enhancements to the Document Template<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/2011\/03\/01\/a-super-simple-template-system\/\" target=\"_blank\" rel=\"noopener\">A Super-Simple Template System<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Video of use of Document Generation Example<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Release of V1 of Simple DOCX Generation System<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Changing the Schema for this Open XML Document Generation System<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Generating Open XML WordprocessingML Documents using XPath Expressions in Content Controls<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/2011\/03\/27\/replacing-a-picture-in-a-picture-content-control-in-an-open-xml-wordprocessingml-document\/\" target=\"_blank\" rel=\"noopener\">Replacing a Picture in a Picture Content Control in an Open XML WordprocessingML Document<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/2011\/03\/27\/replacing-a-picture-in-a-picture-content-control-in-an-open-xml-wordprocessingml-document\/\" target=\"_blank\" rel=\"noopener\">Replacing a Picture in a Picture Content Control in an Open XML WordprocessingML Document<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Release of V2 of Doc Gen System: XPath in Content Controls<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/iterating-through-all-content-controls-in-an-open-xml-wordprocessingml-document\/\" target=\"_blank\" rel=\"noopener\">Iterating through all Content Controls in an Open XML WordprocessingML Document<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n<ul>\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\" rel=\"noopener\">Change the Schema for Simple Free Doc Generation System<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/open-xml-sdk-expanded\">Open XML SDK<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/docx-generation-expanded\">DOCX Generation<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/what-is-the-glossary-document-used-for\/\" target=\"_blank\" rel=\"noopener\">What is the glossary document used for?<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a><\/div>\n<\/div>\n<ul>\n<li class=\"ericListItem\"><a class=\"ericListItem\" href=\"https:\/\/www.ericwhite.com\/blog\/custom-xml-parts-and-content-controls\/\" target=\"_blank\" rel=\"noopener\">Custom XML Parts and Content Controls<\/a><\/li>\n<\/ul>\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:\u00a0\u00a0<\/span><a href=\"https:\/\/www.ericwhite.com\/blog\/openxml-expanded\">OpenXML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/wordprocessingml-expanded\">WordprocessingML<\/a>\u00a0\u00a0<a href=\"https:\/\/www.ericwhite.com\/blog\/content-controls-expanded\">Content Controls<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Back to TOCJust VideosCondensed TOC Content controls are the main mechanism to delineate content in WordprocessingML documents. Generating Documents from SharePoint with Open XML Content Controls 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. (Article) Keywords:\u00a0\u00a0OpenXML\u00a0\u00a0Open XML SDK\u00a0\u00a0WordprocessingML\u00a0\u00a0SharePoint [&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-604","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/604","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=604"}],"version-history":[{"count":9,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/604\/revisions"}],"predecessor-version":[{"id":8038,"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/pages\/604\/revisions\/8038"}],"wp:attachment":[{"href":"https:\/\/www.ericwhite.com\/blog\/wp-json\/wp\/v2\/media?parent=604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}