public static HeaderType AddSubHeaderTextContent(this HeaderType header, string headerText, string styleName, string textContent)
 {
     if (header == null)
         throw new ArgumentNullException("header");
     HeaderType subHeader = new HeaderType
                                {
                                    text = headerText,
                                    level = header.level + 1,
                                };
     subHeader.AddHeaderTextContent(styleName, textContent);
     header.AddSubHeader(subHeader);
     return subHeader;
 }
 public static void AddHeader(this DocumentType document, HeaderType header)
 {
     if(document == null)
         throw new ArgumentNullException("document");
     if (header == null)
         return;
     HeaderType[] content = (document.Content ?? new HeaderType[0]).Union(
         new []
             {
                 header
             }).ToArray();
     document.Content = content;
 }
 public static void AddSubHeader(this HeaderType header, HeaderType subHeader)
 {
     if(header == null)
         throw new ArgumentNullException("header");
     if (subHeader == null)
         return;
     subHeader.level = header.level + 1;
     HeaderType[] content = (header.Header ?? new HeaderType[0]).Union(
         new[]
             {
                 subHeader
             }).ToArray();
     header.Header = content;
 }