code: public static List<String> checkTopicForInvalidContent(final ServerSettingsWrapper serverSettings, final BaseTopicWrapper<?> topic,
              final Document topicDoc, boolean skipNestedSectionValidation) {
          final List<String> xmlErrors = new ArrayList<String>();
          // Check to ensure that if the topic has a table, that the table isn't missing any entries
          if (!DocBookUtilities.validateTables(topicDoc)) {
              xmlErrors.add("Table column declaration doesn't match the number of entry elements.");
          }
          // Check that the root element matches the topic type
          xmlErrors.addAll(checkTopicRootElement(serverSettings, topic, topicDoc));
  
          // Check that the content matches the topic type
          xmlErrors.addAll(checkTopicContentBasedOnType(serverSettings, topic, topicDoc, skipNestedSectionValidation));
  
          return xmlErrors;
      }
docs: Checks to make sure that a topics xml content is valid for the specific topic. This involves checking the following:
  <ul>
  <li>Table row entries match the cols attribute.</li>
  <li>The root XML Element matches the topic type.</li>
  <li>The topic has no invalid content for the specific topic type.</li>
  </ul>
  
  @param serverSettings              The server settings.
  @param topic                       The topic to check for invalid content.
  @param topicDoc                    The topics XML DOM Document.
  @param skipNestedSectionValidation Whether or not nested section validation should be performed.
  @return A list of error messages for any invalid content found, otherwise an empty list.